Ember.js 可以删除。选择“为内容提供承诺”
我试图呈现一个项目列表,并为每个项目提供选择输入。select的选项来自商店,因此在传递到Ember.select时是一个承诺。这可能吗?如果内容发生变化,视图看起来不会重新播放,所以我可能不得不这样做 我的模板(缩写) 渲染“选择”时唯一显示的是提示Ember.js 可以删除。选择“为内容提供承诺”,ember.js,ember-data,ember-select,Ember.js,Ember Data,Ember Select,我试图呈现一个项目列表,并为每个项目提供选择输入。select的选项来自商店,因此在传递到Ember.select时是一个承诺。这可能吗?如果内容发生变化,视图看起来不会重新播放,所以我可能不得不这样做 我的模板(缩写) 渲染“选择”时唯一显示的是提示 余烬:1.3.1,数据:1.0.0。beta4证明我对我的问题的理解是错误的 按照@edpaez的建议进行了更新,我认为这使我的代码符合约定。我在路线中添加了以下内容: model: function () { return Em.RSVP.
余烬:1.3.1,数据:1.0.0。beta4证明我对我的问题的理解是错误的 按照@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);
}
是否有适当的理由让您在控制器中处理
水果类型
?为什么不使用该路由?您是否建议将水果类型:
功能移动到该路由?只是澄清一下,是的。将this.store.find('need_type'))
移动到路由的model
钩子,以便Ember等待该承诺实现,然后您可以使用setupController
钩子中的值设置控制器。您可能可以使用afterModel
钩子,如果这些数据是从该路线的模型之外加载的。@Hyder我认为@edpaez是正确的,查看路线文档。“[afterModel]适用于执行只有在模型已解析后才能执行的逻辑”。如果不正确,请告诉我。
...
fruitTypes: function () {
return this.store.find('fruitType');
}.property(),
model: function () {
return Em.RSVP.hash({
content: this.modelFor('<the parent element>'),
fruitTypes: this.store.find('fruitType')
});
},
setupController: function(controller, model) {
controller.setProperties(model);
}
{{#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}}