我正试图使用一个预先存在的组件在Ember中创建一个Bootstrap下拉列表。组件API可以在这里找到Ember Bootstrap Dropdown API。我如何让Ember知道用户选择了什么?如果我不使用这个组件,我可以做到,但我希望使用它
{{#bs-dropdown}}
{{#bs-button}}
<strong>Select a File</strong>
{{/bs-button}}
{{#bs-dropdown-button}}
<span class="caret"></span>
{{/bs-dropdown-button}}
{{#bs-dropdown-menu}}
{{#each list as |item|}}
<li>
<a value={{item.title}}>{{item.title}}</a>
</li>
{{/each}}
{{/bs-dropdown-menu}}
{{/bs-dropdown}}
谢谢。
您可以启动一个操作来更新单击的项目。
<li {{action 'clickItem' item}}>
将数据(项)向下传递给组件,将操作向上传递给父组件(数据向下,操作向上)。
App.MyComponent = Ember.Component.extend({
click: function(item) {
this.sendAction('clickItem', item);
}
});
在控制器或路由中,您可以处理该操作。
App.IndexRoute = Ember.Route.extend(
actions: {
clickItem: function(item) {
item.set('active', true);
}
}
});
在此处查找更多信息->https://guides.emberjs.com/v1.10.0/components/sending-actions-from-components-to-your-application/