当在{{#each}}中使用Ember.select时,如果我在一个选择中选择选项,则表明它在所有其他选择中都被选中。下面是代码和屏幕截图。
模板中的代码:
{{#model.feeddefinitions中的每个Feed}}
{{#if isEditing}}
<td> {{view Ember.Select
content=model.sections
optionValuePath="content.id"
optionLabelPath="content.name"
prompt="Select Section"
value=selectedSection}}</td>
<td>
<button class="btn btn-primary btn-sm" {{action 'add_section_to_feed' model feed.id}}>Add</button>
</td>
{{/if}}
</tr>
{{/each}}
答案 0 :(得分:1)
您遇到此问题,因为selectedSection的上下文不是单个Feed。
如果每个Feed都有一个&#39; selectedSection&#39;属性,您可以提供&#39; value = feed.selectedSection&#39;
否则,您必须为单个Feed定义itemController并在其中定义selectedSection属性。
答案 1 :(得分:0)
问题是所有Ember.Select
共享一个控制器,并且所有这些控制器都绑定到同一控制器value=selectedSection
中的同一属性。
您需要为每个Ember.Select
配备一个单独的控制器。每个项目都需要一个新的控制器,为此您可以使用render
帮助器。
示例:http://emberjs.jsbin.com/xahevi/1/edit?html,js,console,output
答案 2 :(得分:0)
您的所有选择都绑定在同一个属性上。
您需要将值/选项绑定到模型属性或每个项目的控制器属性上。您可以让each
帮助程序在控制器中包装每个模型,如下所示:
{{#each feed in model.feeddefinitions itemController='feed-definition'}}
...
{{/each}}
答案 3 :(得分:0)
基本上你要做的是 -
在循环时将项目控制器声明为{{#each itemController=DesignPhotoController}}
。
这样每个单独的对象都有一个单独的控制器。
并添加
selectedSection: null,
在DesignPhotoController
中并通过控制器中的this.get("selectedSection")
访问它。
这是 - FIDDLE