我有一个服务对象,该对象公开一个数组,我想监视该数组(在服务内),然后调用一个方法。

通过在$ scope上观察对数组的更改,这在控制器内部是微不足道的,但是如何在服务中实现相同的目的呢?
该服务在多个控制器中共享,我不想在很多地方实现逻辑。

我曾尝试使用Polymer的ArrayObserver,但它似乎不适用于Angular。

有没有人有什么建议?
谢谢

最佳答案

您可以在$rootScope上添加手表,即:

.service("mySvc", function($rootScope,...) {
    var myArray = ...
    ...
    $rootScope.$watchCollection(
        function() {
            return myArray;
        },
        function(newval) {
            ...
        }
    );


但是,如果不再需要手表,则必须格外小心。

10-06 08:18
查看更多