我的页面的一部分由控制器处理。它取决于全局属性$ 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。 这对我来说不太好,有没有更好的解决方案?
'init()'将在控制器初始化时被手表调用。你可以在init()里面用'console.log'来检查。因此,控制器中的最后一个'init()'语句是多余的。 –
不,那不是真的,如果我省略对init()的调用,我的业力测试就会失败。 – user3725805
也许你应该检查测试...确保它调用'$ apply'或'$ digest'。 –