【发布时间】:2013-09-06 09:27:38
【问题描述】:
[我正在使用 Ember 1.0.0 - Ember.data 0.13]
在嵌套路由中,我使用setupController 钩子来加载我用作模型选择列表的模板列表,Offer 对象:
controller.set('offerTemplates', App.OfferTemplate.find());
完整代码:
App.OfferEditRoute = Ember.Route.extend({
model: function () {
return this.modelFor("offer");
},
setupController: function (controller, model) {
controller.set('content', model);
controller.set('offerTemplates', App.OfferTemplate.find());
},
renderTemplate: function () {
this.render('offer-edit-title', { into: 'application', outlet: 'page-title', controller: 'offerEdit' });
this.render('offer-edit', { into: 'application', controller: "offerEdit" }); //
}
});
App.OfferEditController = Ember.ObjectController.extend({
offerTemplates: [],
...
)};
这在 Ember 1 RC 7 之前一直有效,但在 1.0.0 中不可用。 Offer(模型)的主要内容已正确呈现,但绑定到控制器的offerTemplates 属性(数组)的模板列表在加载页面(浏览器页面刷新)时未呈现。
如果我切换页面并返回路线,一切都会正确呈现。
有什么提示吗?
【问题讨论】:
-
糟糕,这只是一个复制粘贴错误,我从两个相似的文件中复制。它是 OfferEditController。对不起!我已经更新了帖子。
-
您使用的是哪个版本的 Ember Data?测试版 1?
-
@colymba 没有仍然在 Ember.data 0.13
-
您是否检查过该属性是否实际被填充?试试
App.__container__.lookup("controller:offerEdit").get("offerTemplates.length") -
@mavilein 是的,它是从服务器的 API 中获取并填充的。结果:12(这是正确数量的 offerTemplates)
标签: ember.js ember-data