Ember - 绑定到数组控制器中的过滤列表,然后添加新记录

Ember - Binding to filtered list in array controller, then adding new records

本文关键字:列表 过滤 然后 新记录 添加 绑定 数组 控制器 Ember      更新时间:2023-09-26

我有这个 JS Bin 它正在使用最新的余烬并演示我的问题。 我有 2 个列表。 一个绑定到 ArrayController "内容",另一个绑定执行一个名为"filtered"的属性函数,该函数过滤掉某些记录。 当您添加新记录(使用列表上方的"添加新记录"链接)时,您可以看到新记录确实进入了内容,但筛选的列表不会更新。 我需要做什么才能使 ArrayController 看到列表中有一条新记录,并重新呈现{{#each filtered}}块?

计算属性的依赖键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