【发布时间】:2013-04-22 14:59:13
【问题描述】:
当我加载视图时,我想在其关联的控制器中运行一些初始化代码。
为此,我在视图的主要元素上使用了 ng-init 指令:
<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。我能做些什么来防止这种情况发生?
【问题讨论】:
标签: angularjs