如何填充Ember.js的仅由某些对象选择?

时间:2013-11-10 19:51:59

标签: javascript ember.js

如何仅使用属性valid等于true的对象填充Ember.js's Select

带数据的数组(JS):

 tickets: [
    {
        title: 'Pink',
        valid: true
    },
    {
        title: 'Blue',
        valid: false
    }
]

选择(HBS):

{{view Ember.Select
    contentBinding = ticket
    prompt = "Select ticket"
    optionLabelPath ="content.title"
}}

在这种情况下,我想在选项列表中选择仅显示粉红色。

2 个答案:

答案 0 :(得分:1)

有几种方法可以解决这个问题,最简单的方法似乎是在将内容传递给ember select之前过滤内容

http://emberjs.jsbin.com/EGORAPI/1/edit

App.IndexController = Ember.ArrayController.extend({
  validItems: function(){
    return this.filterBy('valid', true);
  }.property('@each.valid')
});

答案 1 :(得分:1)

您可以使用Ember.computed.filterBy过滤掉数据。

validTicket: Ember.computed.filterBy('tickets','valid',true)  

并在你的hbs中,

{{view Ember.Select
contentBinding = "validTicket"
prompt = "Select ticket"
optionLabelPath ="content.title" }}