Ember.js 过滤余烬阵列Proxy

Ember.js 过滤余烬阵列Proxy,ember.js,ember-data,Ember.js,Ember Data,如何过滤ArrayProxy的结果?我尝试了slice、filter、rejectBy,所有这些在视图中都没有结果。我想这是因为数据还不可用,但then(…)的使用也没有确定。有什么想法吗 shownEvents: function(){ return Em.ArrayProxy.createWithMixins(Em.SortableMixin, { content: this.get('shownUser.events'), sortPropertie

如何过滤ArrayProxy的结果?我尝试了slice、filter、rejectBy,所有这些在视图中都没有结果。我想这是因为数据还不可用,但then(…)的使用也没有确定。有什么想法吗

shownEvents: function(){
    return Em.ArrayProxy.createWithMixins(Em.SortableMixin, {
        content: this.get('shownUser.events'),
        sortProperties: ['eventTime.startTime', 'eventTime.endTime'],
        sortAscending: true
    });
  }.property("shownUser"),
我已经看过很多类似的文章,但没有发现任何有效的


您可以通过将函数传递到
filter
并返回
true
来过滤
ArrayProxy
,以获得应通过过滤测试的值

比如:

App.IndexRoute = Ember.Route.extend({
  model: function() {
    return { pets: [ { type: 'dog'}, { type: 'cat'}, { type: 'fish'}] };
  }
});

App.IndexController = Ember.ObjectController.extend({
  myPets: function(){
    return Em.ArrayProxy.createWithMixins(Em.SortableMixin, {
      content: this.get('pets'),
      sortProperties: ['type'],
      sortAscending: true
    }).filter(function(item){ return item.type.length === 3});
  }.property("pets"),
});
工作


如果您已经尝试过,请免费填写以忽略此项;)

你能在jsbin中复制这个吗?谢谢@Kalman Hazins;我已经试过了,但我认为有一点延迟,因为async的延迟/承诺。侧面加载这项工作非常完美,async/promise尚未完成。也就是说,我在OP中没有具体说明,所以这绝对是正确的答案。再次感谢!但是…,this.filter(…)…,它会返回另一个ArrayProxy实例吗?如果是,这个新实例的“arrangedContent”是否只包含通过筛选的项?