जब मैं एक दृश्य लोड करता हूं, तो मैं इसके संबंधित नियंत्रक में कुछ आरंभीकरण कोड चलाना चाहता हूं।
ऐसा करने के लिए, मैंने अपने दृश्य के मुख्य तत्व पर एनजी-इनिट निर्देश का उपयोग किया है:
<div ng-init="init()">
blah
</div>
और नियंत्रक में:
$scope.init = function () {
if ($routeParams.Id) {
//get an existing object
});
} else {
//create a new object
}
$scope.isSaving = false;
}
पहला सवाल: क्या यह करने का सही तरीका है?
अगली बात, मुझे घटनाओं के अनुक्रम के साथ एक समस्या है। दृश्य में मेरे पास एक 'सेव' बटन है, जो ng-disabledनिर्देश का उपयोग करता है जैसे:
<button ng-click="save()" ng-disabled="isClean()">Save</button>
isClean()समारोह नियंत्रक में परिभाषित किया गया है:
$scope.isClean = function () {
return $scope.hasChanges() && !$scope.isSaving;
}
जैसा कि आप देख सकते हैं, यह $scope.isSavingध्वज का उपयोग करता है , जिसे init()फ़ंक्शन में प्रारंभ किया गया था ।
समस्या: जब दृश्य लोड किया जाता है, isClean समारोह कहा जाता है से पहलेinit() समारोह, इसलिए झंडा isSavingहै undefined। इसे रोकने के लिए मैं क्या कर सकता हूं?