Angular:在这种情况下$ watchCollection如何工作?

时间:2016-09-21 02:46:12

标签: javascript angularjs angularjs-scope

以下是我们使用$watchCollection

的代码
$scope.$watchCollection(TwitterDashboardService.getSelectedList, updateList);

据我所知$watchCollection观察集合中的变化,如数组等。

但在这种情况下TwitterDashboardService.getSelectedList是一个函数。它的定义如下 -

this.getSelectedList = function() {
        return data.items.filter(function(item) {
            return !!item.selected;
        });
    };

我无法弄清楚何时会调用处理程序updateList

请帮忙。我是棱角分明的新人。

1 个答案:

答案 0 :(得分:0)

$ watchCollection还可用于监视返回数组或对象实例的函数,并在任何值更改时触发。

如果您只想观看数组的子集,它非常方便。只需设置一个只返回要监视的值的函数。

在您的特定场景中,它将返回data'items列表,其中属性“selected”设置为true。例如,如果您的项目列表是:

[{名: “ITEM1”,选自:真},{名称: “ITEM2”,选自:假},{名称: “项目3”,选自:假},{名称: “ITEM4”,选自:真}]

然后,它只会观察第1项和第2项。如果对这些项目进行了任何更改,则会触发它。