【发布时间】:2014-01-21 13:37:30
【问题描述】:
我正在尝试呈现项目列表并为每个项目提供选择输入。 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
【问题讨论】:
-
是否有适当的理由让您在控制器中处理
fruitTypes作为承诺?为什么不使用路线? -
您是否建议将
fruitTypes:函数移至路由?只是澄清一下。 -
是的。将
this.store.find('need_type'))移动到路由的model钩子上,以便 Ember 等待该承诺实现,然后您可以使用setupController钩子中的值设置控制器。 -
如果这个数据要与这条路线的模型分开加载,你可以使用
afterModel钩子。 -
@Hyder 我认为@edpaez 是正确的,查看路线
afterModel文档。 “[afterModel] 适用于执行只能在模型已经解析后才能发生的逻辑”。让我知道这是否不正确。
标签: ember.js ember-data ember-select