我正在尝试渲染项目列表并为每个项目提供选择输入。 select的选项来自商店,因此传递给Ember.Select时是一个承诺。这可能吗?如果内容发生变化,视图看起来就不会重新呈现,所以看起来我可能不得不这样做。
我的模板(缩写)
{{#each fruitBins}}
<tr>
<td>{{id}}</td>
<td> {{view Ember.Select
content=fruitTypes
optionLabelPath="content.name"
optionValuePath="content.id"
prompt="Select a Fruit Type"
}}
</td>
</tr>
{{/each}}
fruit_bins_controller.js:
...
fruitTypes: function () {
return this.store.find('fruitType');
}.property(),
呈现选择时唯一出现的是提示。
Ember:1.3.1,数据:1.0.0.beta4
答案 0 :(得分:2)
原来我理解我的问题是错误的。
根据@edpaez的建议制作更新,我认为我的代码与约定一致。我在我的路线中添加了以下内容:
model: function () {
return Em.RSVP.hash({
content: this.modelFor('<the parent element>'),
fruitTypes: this.store.find('fruitType')
});
},
setupController: function(controller, model) {
controller.setProperties(model);
}
我仍然遇到同样的问题但发现(忘了)使用#each
改变了我的上下文。
解决方案是包装#each
:
{{#with this as context}}
{{#each fruitBins}}
<tr>
<td>{{id}}</td>
<td> {{view Ember.Select
content=context.fruitTypes
optionLabelPath="content.name"
optionValuePath="content.id"
prompt="Select a Fruit Type"
}}
</td>
</tr>
{{/each}}
{{/with}}