如何更新模型数组上的任何属性时如何重新计算ArrayProxy?

时间:2015-03-12 00:44:56

标签: ember.js

我有一个简单的ArrayProxy(计算),当我更新源(数组)内的模型上的任何属性时,我想重新计算。我需要这个,因为我用来过滤数组的filter_func可能有任意数量的动态属性。

    return Ember.ArrayProxy.extend({
      source: undefined,
      content: function () {
        var filter_func = this.get("filter_func");
        return this.get("source").filter(filter_func);
      }.property("source.@each")
    }).create({
      filter_func: filter_func,
      source: this.findAll()
    });

今天我只使用"来源。@ every"如上所示,但这只会强制ArrayProxy在从源数组添加/删除新项目时重新计算(而不是在我更改实际模型本身的属性时)

1 个答案:

答案 0 :(得分:0)

不确定这是否有帮助,但随着项目的添加或删除,可能会在要添加的项目的每个属性上设置观察者。您需要删除从阵列中删除的每个项目的观察者。

http://www.matchingnotes.com/ember-array-proxy/observers.html

整个演示文稿是ArrayProxy的精彩演练。

我要试一试,看看它是如何运作的。我对这个问题的结果非常感兴趣。