1

我试图让一些 JSON 数据在控制器之间传递。我得到了一些 JSON $http,用延迟设置我的回调$q并将结果分配给我的$rootScope.productList. 一切正常,但是当我添加$watchon 时$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

我尝试使用 a $watch,但我会采取任何解决方法。

4

2 回答 2

1

这里的问题是 watch() 不是一个公认的函数——你可能想要的是 $watch()。换句话说,您只是缺少原始代码中“watch”旁边的 $ 。

尝试这个:

$rootScope.$watch('productList', function(newVal, oldVal) {
  $scope.filters = $rootScope.productList;
  console.log($rootScope.productList);
})
于 2014-10-03T14:20:21.243 回答
0

If you need to be able to transfer data between controllers, you should be implementing a service in angular. The $rootScope wasn't created for you to set your data.

于 2014-10-03T12:52:52.167 回答