我有一個嵌套在共享相同控制器的其他模板(菜單是父模板)中的模板。我的控制器從一個名爲counterOperations的服務中獲取值。雖然$ scope.total似乎在console.log中更新,但視圖不更新該值。
控制器
.controller('ListController', function ($scope, $http, $state, counterOperations, userService) {
//Some code
$scope.add = function (index) {
$scope.total = counterOperations.getTopCounter();
console.log($scope.total);
};
})
模板
$stateProvider
.state('app', {
url: '/app',
abstract: true,
templateUrl: 'templates/menu.html',
controller: "ListController"
})
$stateProvider
.state('app.list', {
url: '/list',
views: {
'products': {
templateUrl: 'templates/product-list.html',
controller: "ListController"
}
}
})
與納克點擊我觸發從一個服務調用一些功能的功能
用於菜單的視圖可變
<span>{{total}}</span>
我已經試過這種方式,更新的價值,但沒有什麼變化
setTimeout(function() {
$scope.total = counterOperations.getTopCounter();
}, 1000);
任何想法?
你計算的應用程序狀態和總想總要在app.list可見狀態呢? –
$ ng.add func()是在app.list中單擊ng後觸發的。但{{total}}處於應用狀態。該值在counterOperations服務中計算,然後在共享控制器調用服務函數時更新$ scope.total。 – Korte
你的應用程序狀態應該監視你的服務的變化!你的控制器的另一個實例改變了輸入,即從app.list中的一個。這不會被app.state自動獲取。您可以使用$ scope.watch查看值是否已更改! – skubski