我有一个服务对象,该对象公开一个数组,我想监视该数组(在服务内),然后调用一个方法。
通过在$ scope上观察对数组的更改,这在控制器内部是微不足道的,但是如何在服务中实现相同的目的呢?
该服务在多个控制器中共享,我不想在很多地方实现逻辑。
我曾尝试使用Polymer的ArrayObserver,但它似乎不适用于Angular。
有没有人有什么建议?
谢谢
最佳答案
您可以在$rootScope
上添加手表,即:
.service("mySvc", function($rootScope,...) {
var myArray = ...
...
$rootScope.$watchCollection(
function() {
return myArray;
},
function(newval) {
...
}
);
但是,如果不再需要手表,则必须格外小心。