2016-02-08 165 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()',但是我猜想它不夠嫺熟。 –