0

我有这个使用最新 ember 的 JS Bin并演示了我的问题。我有 2 个清单。一个绑定到 ArrayController 的“内容”,另一个绑定到一个名为“filtered”的属性函数,它会过滤掉某些记录。当您添加新记录时(使用列表上方的添加新链接),您可以看到新记录确实进入了内容,但过滤后的列表没有更新。我需要做什么才能让 ArrayController 看到列表中有一条新记录,然后重新渲染该{{#each filtered}}块?

4

1 回答 1

1

你的计算属性的依赖键filtered是错误的,你需要使用content.length,因为filtered依赖于属性的一些变化而content不是过滤本身:

filtered:function() {
    return this.get("content").reduce(function (arr, object, index) {
      if(object.get("id") != 2) {
        arr.pushObject(object);
      }
      return arr;
    }, Em.A());
  }.property("content.length")

更新了 jsbin http://jsbin.com/okAKAnU/1/edit

于 2013-10-11T20:54:14.760 回答