我的部分页面由控制器处理。它取决于全局属性$ scope.selected。我必须在控制器启动时以及$ scope.selected的值更改时初始化控制器。
.controller ('Details', ['$scope', function ($scope) {
function init () {
$scope.viewProperty = complexOperation($scope.selected);
}
$scope.$watch ('selected', init);
init ();
}])
<span ng-if="selected.gto" ng-controller="Details">
{{viewProperty}}
</span>
我在控制器初始化和$ scope.selected的更改时调用init。 这对我来说不太好,有更好的解决方案吗?
答案 0 :(得分:0)
$watch()
通常用于指令而不是控制器。同样评论提到init()
在控制器初始化时被调用一次,因为$watch在初始化时调用了一次监听器。这是一篇关于这种做法的文章Angular JS - you probably shouldn't use $watch in your controllers.