我正在尝试在模型上的布尔属性上使用Ember.Select。问题是它将我的属性转换为对象{}并且没有发生绑定。
我的模型有一个isActive标志
isActive: DS.attr('boolean'),
这是我的模板中的余烬选择
{{view Ember.Select
viewName="isActive"
content=controller.yesNo
optionLabelPath="content.key"
optionValuePath="content.value"
selection=model.isActive
class="form-control"
disabled=true}}
在我的路由器中,我在控制器上设置了yesNo数组(顺便说一下,我不确定这是否是正确的地方,这个很简单,但我的一些选择需要使用{{1来查询数据库所以我认为这些路线不是控制器。)
this.store.find('accounts')
我也尝试将布尔值作为字符串传递,但它不起作用。
setupController: function(controller, model) {
this._super(controller, model);
controller.set('yesNo', [
{key : 'Yes', value : true},
{key : 'No', value : false}
]);
}
从ember检查器中,当我选择一个项目时,它将返回整个对象 controller.set('yesNo', [
{key : 'Yes', value : 'true'},
{key : 'No', value : 'false'}
]);
或{ key: Yes, value: true }
。我不想只返回value属性。
答案 0 :(得分:4)
selection
绑定整个对象。 value
会将optionValuePath
中指定的属性绑定到您指定的属性。因此,如果您只想将binded属性设置为布尔值,请使用value
而不是selection
。因此,在模板中选择的把手中使用:
{{view Em.Select
// Properties...
// More properties...
value=isActive
}}
旁注:
您不需要在controller
中指定content=controller.yesNo
。你可以说content=yesNo
。