我正在尝试在控制器之间传递一些JSON数据。我使用$http
获得了一些JSON,使用$q
延迟设置我的回调并将结果分配给我的$rootScope.productList
。
一切正常,但当我在$watch
上添加$rootScope.productList
时,它会返回 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
,但我会采取任何解决方法。
答案 0 :(得分:1)
这里的问题是watch()不是公认的功能 - 你可能想要的是$ watch()。 换句话说,你只是错过了' watch'旁边的$。在原始代码中。
试试这个:
$rootScope.$watch('productList', function(newVal, oldVal) {
$scope.filters = $rootScope.productList;
console.log($rootScope.productList);
})
答案 1 :(得分:0)
如果您需要能够在控制器之间传输数据,则应该以角度实现服务。未创建$ rootScope来设置数据。