2016-02-08 167 views
0

Angular初学者+查看大多数复杂的$ watch,$ digest和$ apply线程,但我仍然无法完成某些工作。角度范围外变量的变化

var masterArray = [obj1, obj2, ... ];

该变量没有内部的任何角度范围和在普通JS和得到由平纹JS再次外侧角的范围周期性地更新由用户的交互。

我们如何捕获masterArray中的更改,并更新相关的$scope

app.('mycontroller', ['$scope', function($scope){ 
     $scope.items = masterArray; 
    }]); 

有没有办法来更新$scope.items与masterArray变化?这个东西只有在我重新加载页面时才起作用,因为masterArray每次更新时都会被推送到LocalStorage。类似的关注 - 我的数据变量(外部角)有点晚,从普通的js或jquery服务器回调函数,但我的角度范围和变量已经在文档加载过程中定义。

我找不到更新我的角度范围的方法,这些角度范围与那些在页面加载过程中为null或空的变量相关联,现在用数据更新。

+0

其工作正常这里:http://jsfiddle.net/rayon_1990/HB7LU/23477/ – Rayon

回答

1

一些像这样的黑客应该工作:

app.('mycontroller', function($scope){ 
     $scope.items = masterArray; 
     $scope.$watch(function() { 
      return masterArray; 
     }, function(masterArray) { 
      $scope.items = masterArray; 
     }); 
    }); 
+0

感谢。我一直在尝试'$ watch()',但是我猜想它不够娴熟。 –