我可以使用简单对象在车把中使用 select-2 标签吗?
Can I use select-2 tag in handlebars using a simple object?
我有对象
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}}
更新:如果您已经安装了 Select 2 Ember 插件...(如果没有,请参阅下面的说明)
您的对象应如下所示:
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 插件:
是的,您可以在 Ember 项目中使用 Select 2,但您必须安装特定的 Ember 插件。大多数您最喜欢的 javascript 库已经移植到 Ember,您可以在这里查看:http://www.emberobserver.com
您可以在这里找到关于 Select 插件的列表:https://www.emberobserver.com/categories/select
如您所见,有一个 ember-select-2
插件。在您的项目文件夹中 运行:
ember install ember-select-2
如果您想使用此包,请按照说明操作:https://github.com/iStefo/ember-select-2
但是,还有更多最新的 select 软件包,您可以尝试一下。其中最受欢迎的是:http://www.ember-power-select.com/
我有对象
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}}
更新:如果您已经安装了 Select 2 Ember 插件...(如果没有,请参阅下面的说明)
您的对象应如下所示:
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 插件:
是的,您可以在 Ember 项目中使用 Select 2,但您必须安装特定的 Ember 插件。大多数您最喜欢的 javascript 库已经移植到 Ember,您可以在这里查看:http://www.emberobserver.com
您可以在这里找到关于 Select 插件的列表:https://www.emberobserver.com/categories/select
如您所见,有一个 ember-select-2
插件。在您的项目文件夹中 运行:
ember install ember-select-2
如果您想使用此包,请按照说明操作:https://github.com/iStefo/ember-select-2
但是,还有更多最新的 select 软件包,您可以尝试一下。其中最受欢迎的是:http://www.ember-power-select.com/