我坚持下一个问题。我有一个"选择的组件"用户可以选择多个选项的输入。我想将所选id的列表映射到另一个id的列表,并将它们发送到父控制器。它现在看起来如何:
组件/过滤器menu.js
import Ember from 'ember';
export default Ember.Component.extend({
selectedFakeIngredients: [],
selectedRealIngredients: Ember.computed('selectedFakeIngredients', function(key, value) {
var self = this;
if (arguments.length > 1) {
return value;
}
return this.get('selectedFakeIngredients').map(function(item) {
return self.get('filteredIngredients')[item].groupId;
});
}),
actions: {
doSearch() {
this.sendAction("doSearch");
}
}
});
模板/组件/过滤器-menu.hbs
{{ember-chosen multiple=true searchContains=true displaySelectedOptions=false content=filteredIngredients optionValuePath="id" optionLabelPath="caption" value=selectedFakeIngredients action="doSearch" placeholder="Напишите ингредиент..."}}
模板/ builder.hbs
{{filters-menu clearFilters="clearFilters" doSearch="doSearch" toggleType="toggleType" toggleOption="toggleOption" selectedRealIngredients=selectedIngredients ingredients=ingredients}}
当我直接设置" selectedFakeIngredients"在builder.hbs中一切正常(期望这些是不正确的ID)。但是如果设置计算属性" selectedRealIngredients"它完全不起作用。 " selectedRealIngredients"功能未被调用。难道我做错了什么?有没有其他方法可以实现所需的行为?
P.S。我使用的是最新稳定版的EmberJS。