我的頁面的一部分由控制器處理。它取決於全局屬性$ 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'。 –