当数组中的项目更改时,Ember重新加载阵列控制器

时间:2013-12-17 17:37:17

标签: arrays ember.js controller

我有一个ArrayController,我在其中显示由'group'过滤的2组对象。当我编辑一个人时,我可以使用Ember选择更改他们的组,我可以看到列表中的组已更改,但问题是如何通知父ArrayController它需要重新应用过滤器并重新呈现{ {#each}}块?

这是一个显示问题的JSBin。 http://jsbin.com/ISIKAjOZ/5/edit

要在JSBin中查看此内容,请单击其中一个人并使用下拉列表更改其组。您会看到他们的组号更新,但他们需要从一个列表移动到另一个列表...

1 个答案:

答案 0 :(得分:3)

依赖项(在属性中)应告诉ember什么时候要知道属性是否脏,应该重新计算。

  group1:function() {
    return this.get("content").reduce(function (arr, object, index) {
      if(object.get("group") === 1) {
        arr.pushObject(object);
      }
      return arr;
    }, Em.A());
  }.property("content.@each.group"),

http://jsbin.com/iBaCOrOt/1/edit

http://emberjs.com/guides/object-model/computed-properties-and-aggregate-data/

顺便说一下

  group1:function() {
    return this.get("content").filterBy('group', 1);
  }.property("content.@each.group"),