[英]$watch prevents rootScope change
我正在嘗試獲取一些在控制器之間傳遞的JSON數據。 我用$http
得到一些JSON,用$q
defer設置回調,並將結果分配給$rootScope.productList
。 一切正常,但是當我在$rootScope.productList
上添加$watch
時,它返回undefined 。 您對此有什么解決方案嗎?
我在控制器內的$watch
:
$rootScope.watch('productList', function(newVal, oldVal) {
$scope.filters = $rootScope.productList;
console.log($rootScope.productList);
});
在另一個控制器中,我得到了我的數據。 我將$http
替換為超時以重現該行為。
$timeout(function() {
$rootScope.productList = $scope.productList;
console.log($rootScope.productList);
}, 500);
http://plnkr.co/edit/7wWxXgq5BARYgm0tYVgf
我嘗試了$watch
,但我會采取任何解決方法。
這里的問題是watch()不是公認的函數-您可能想要的是$ watch()。 換句話說,您只是在原始代碼中缺少“ watch”旁邊的$。
嘗試這個:
$rootScope.$watch('productList', function(newVal, oldVal) {
$scope.filters = $rootScope.productList;
console.log($rootScope.productList);
})
如果需要能夠在控制器之間傳輸數據,則應該以角度實現服務。 並非為您創建$ rootScope來設置數據。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.