【问题标题】:Ember DS.RecordArray filter itemsEmber DS.RecordArray 过滤器项目
【发布时间】:2016-08-23 21:19:20
【问题描述】:

我在路由模型调用中获取了所有记录,但是在其中一个组件中我只想显示记录的子集。我通过调用models.filter(somefilter) 来做到这一点。问题在于filter 返回Array 而不是DS.RecordArray,并且当某些操作导致模型从商店中删除时,Array 不会更新,并且具有该模型的组件也不会被删除。

有谁知道如何创建返回DS.RecordArray 的过滤器或将现有数组转换为DS.RecordArray

// 路由/index.js 路线扩展({ 模型() { 返回 this.store.findAll('user'); } }); //index.hbs {{一些组件用户=模型}} //一些组件.js 组件扩展({ 过滤用户:Ember.computed(function() { 返回 this.get('users').filter(...); }) }); //一些组件.hbs {{#每个过滤用户作为 |用户| {{其他组件用户=用户}} {{/每个}}

【问题讨论】:

    标签: ember.js ember-data


    【解决方案1】:
    filteredUsers: Ember.computed(function() {
        return this.get('users').filter(...);
      })
    

    这只会执行一次。所以每当users 属性发生更改时,filteredUsers 将不会重新计算,因此它不会是最新的。在这种情况下,您需要引入依赖属性,以便在依赖更改时重新计算它。

    filteredUsers: Ember.computed('users',function() {
            return this.get('users').filter(...);
          })
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-07-09
      • 2022-11-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多