2015-08-17 3 views
0

Я очень новый в Angularjs. В контроллере я определил $ OSCOR-наблюдателя. В первый раз (во время загрузки страницы) он будет работать, это означает отображение предупреждений, но после изменений в $rootScope.cartItems он не работает.

eshopApp.controller('cartCtrl', function ($scope, $rootScope, cartService, $cookies) { 

$rootScope.$watch('cartItems', function (newVal, oldVal) { 
    cartService.cartSubTotal(function (data) { 
     $scope.cartSubTotalVal = data; 
     alert('total '+$scope.cartSubTotalVal); 
     }); 
    }); 
}); 
+0

Где вы определяете 'cartItems'? Что делает ваша cartService? – Fissio

+1

В первую очередь ваши картотеки не должны быть в rootScope. Использовать службу для обмена данными через приложение – charlietfl

ответ

2

пройти true в третьем параметре. например

$rootScope.$watch('cartItems', function (newVal, oldVal) { 
cartService.cartSubTotal(function (data) { 

     $scope.cartSubTotalVal = data; 
     alert('total '+$scope.cartSubTotalVal); 
     }); 
    }); 
    },true); 
+0

да, этого не хватает. благодаря – vineet

1

На совершенно несвязанной примечание: Не используйте $ rootScope наблюдателей или наблюдателей в целом. Только очень небольшая часть случаев использования на самом деле требует наблюдателей: Проверьте эту статью для получения дополнительной информации:

You dont need watchers

Смежные вопросы