gpt4 book ai didi

ember.js - 如何正确过滤ArrayController

转载 作者:行者123 更新时间:2023-12-03 06:33:25 24 4
gpt4 key购买 nike

我想通过子属性过滤现有的 ArrayController。怎么做?我的过滤器不起作用或为空,因为我没有看到任何项目出现(如果我不过滤,我会看到它们)。

这是我的代码的简化版本:

模型

App.Post = DS.Model.extend({
user: DS.belongsTo('user')
title: DS.attr('string'),
...
});
App.User = DS.Model.extend({
name: DS.attr('string'),
status: DS.belongsTo('status'),
...
});
App.Status = DS.Model.extend({
title: DS.attr('string'),
techName: DS.attr('string')
});

Controller

App.PostsController = Ember.ArrayController.extend({
activeUsers: function() {
return this.filterBy('user.status.techName', 'active');
}.property('@each','@each.user','@each.user.status','@each.user.status.techName')
});
App.ActiveUsersController = Ember.ArrayController.extend({
needs: ['posts']
});

模板(我的活跃用户模板)

<ul>
{{#each controllers.posts.activeUsers}}
<li>{{name}}</li>
{{/each}}
</ul>

最佳答案

Ember.compulated.filterBy 将满足您的要求。

App.PostsController = Ember.ArrayController.extend({ 
activeUsers: Ember.computed.filterBy('content','user.status.techName','active'),
});

这个还没有文档记录,但是可以从源码中的注释here了解

样本JSBin

关于ember.js - 如何正确过滤ArrayController,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19139901/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com