如何过滤Ember.Select内容,而不是使用{{each}} {{if}}把手过滤?

时间:2014-06-11 17:25:00

标签: ember.js

使用带有把手的select方法,如果有助手,我可以成功地显示一个数组,其中只有那些有active = true的数组。

<select>
    {{#each content.users}}
        {{#if active}}
            <option value="">{{firstName}}</option>
        {{/if}}
    {{/each}}
</select>

VS

{{view Ember.Select class='btn btn-default dropdown-toggle' style='max-width: 200px' 
    content=content.users 
    optionValuePath='content.id' 
    optionLabelPath='content.firstName'
    selectionBinding='someSelectionBinding'}}

选择方式的缺点是我无法将操作绑定到选项值,并且我失去了一些有用的Ember Selection绑定和标签功能/观察者。如果Ember.Select方式的缺点是我无法将我的内容设置为只有那些拥有活动标志的用户。

1 个答案:

答案 0 :(得分:0)

我假设您正在使用最新版本的Ember。在您的控制器中,假设Ember.ArrayController已定义为content.users,您似乎想要创建一个新属性,例如activeUsers

App.ThisController = Em.ArrayController.extend({
    // Other stuff
    activeUsers = Em.computed.filterBy('users', 'active', true)
})

这会为您提供active属性为true的用户数组,因此您可以将Ember.Select视图的内容设置为content.activeUsers