将本地控制器属性添加到商店模型

时间:2018-05-29 08:41:43

标签: ember.js

我想添加一个简单的选择'存储对象的属性,只是本地化到特定的路由/控制器。

因此,在我的控制器中,我正在加载'群组'从商店。对于每个小组'我想添加一个' select'属性。尝试了一些不同的方法,但却无法使其发挥作用。

关于" ember方式的建议"非常感谢。

1 个答案:

答案 0 :(得分:1)

如果您尝试做的是为每个被选中的组显示不同的内容。我采取以下方法:

我在您所选择的组的控制器上创建一个数组,该数组可以是来自商店的组对象数组,也可以只是一组数组。选择/取消选择组时,可以将其添加到阵列中或从阵列中删除。然后,您可以使用计算函数或将selectedGroups传递到组件中,以便对selectedGroups执行任何操作。

所以,如果你有这样的组模板:

{{#each model as |group|}}
  {{my-item-component item=group selectedItems=selectedGroups}}
{{/each}}

然后在my-item-component.js中,您将拥有一个计算函数,如:

isSelected: computed('item', 'selectedItems.[]', function () {
   // This assumes selectedItems contains item/group objects rather
   // than ids. You will need to tweak a little for ids.
   return (this.get('selectedItems').indexOf(this.get('item')) !== -1);
})