我有一个对象
let StatusDescriptions = {
'A' : 'Available' ,
'W' : 'Waitlisted' ,
'C' : 'Closed'
};
可在页面中找到。我使用把手来显示页面。我可以在select-2标签中使用此对象吗?我尝试将optionValuePath作为'key''id'等,我知道这很愚蠢。我也是Ember的新手。请帮忙。
{{select-2 id="myID" content=StatusDescriptions optionLabelPath="what should be here" placeholder='Choose Status' searchEnabled=false}}
答案 0 :(得分:0)
更新:如果您已经安装了Select 2 Ember addon ...(如果没有,请在下面说明)
您的对象应如下所示:
statusDescriptions: [
{
id: 'A',
text: 'Available'
},
{
id: 'W',
text: 'Waitlisted'
},
{
id: 'C',
text: 'Closed'
}
]
所以你可以把它拿在车把上:
{{select-2
content=statusDescriptions
id=id
value=selectedChoice
searchEnabled=false
}}
在您的车把或控制器中,您可以在计算属性中观察或使用selectedChoice
属性。 (这可能在您的车把文件中:)
Selected: {{selectedChoice.id}} - {{selectedChoice.text}}
Update2 :如果您确实想使用简单对象,可以使用计算属性进行转换。例如,这可能在您的控制器中:
import Ember from 'ember';
export default Ember.Controller.extend({
statusDescriptions: {
'A' : 'Available',
'W' : 'Waitlisted',
'C' : 'Closed'
},
statusForSelect: Ember.computed('statusDescriptions', function() {
const statusDescriptions = this.get('statusDescriptions');
return Object.keys(statusDescriptions).map(key =>
Object.create({id: key, text: statusDescriptions[key]})
);
})
});
因此,在您的模板中,您可以将statusForSelect
用作content
。
{{select-2
content=statusForSelect
id=id
value=selectedChoice
searchEnabled=false
}}
如果您还没有安装Select 2 addon:
是的,您可以在Ember项目中使用Select 2,但您必须安装特定的Ember插件。您最喜爱的javascript库已经移植到Ember,您可以在这里查看:http://www.emberobserver.com
您可以在此处找到有关选择插件的列表:https://www.emberobserver.com/categories/select
如您所见,有一个ember-select-2
插件。在项目文件夹中运行:
ember install ember-select-2
如果您想使用此套餐,请按照说明操作:https://github.com/iStefo/ember-select-2
但是,有更多最新的选择包,你可以尝试一下。其中最受欢迎的是:http://www.ember-power-select.com/