$ scope.myVar更新但不在视图中

时间:2016-03-18 10:59:19

标签: angularjs scope ionic-framework angular-ui-router angular-services

我有一个嵌套在另一个模板中的模板(菜单是父模板),它共享同一个控制器。我的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);

有什么想法吗?

2 个答案:

答案 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

检查上述内容是否适用于您?