我有一个嵌套在另一个模板中的模板(菜单是父模板),它共享同一个控制器。我的Controller从名为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"
}
}
})
使用ng-click我触发一个从服务中调用某些函数的函数
菜单的视图变量
<span>{{total}}</span>
我试图以这种方式更新值,但没有任何改变
setTimeout(function() {
$scope.total = counterOperations.getTopCounter();
}, 1000);
有什么想法吗?
答案 0 :(得分:1)
这里有2个州&#34; app &#34;和&#34; app.list &#34;当您从&#34; app &#34;更改状态时,拥有相同的控制器到&#34; app.list &#34;无论相同的控制器控制器将重新实例化,这意味着$ scope.total变量中的值将丢失并将在下一状态重置。
解决方案 -
如果您希望将其设置为其他状态
,则将总计分配给$ rootScope$scope.add = function (index) {
$rootScope.total = counterOperations.getTopCounter();
};
答案 1 :(得分:0)
transformed parameters
检查上述内容是否适用于您?