计算属性不能按预期工作

时间:2016-01-09 11:54:51

标签: ember.js

我坚持下一个问题。我有一个"选择的组件"用户可以选择多个选项的输入。我想将所选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。

0 个答案:

没有答案