[我在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
属性(数组)的模板列表在加载页面时不会呈现(浏览器页面刷新)。
如果我切换页面并返回路径,则所有内容都会正确呈现。
任何提示?
答案 0 :(得分:0)
问题与不使用offerTemplates
数组但计算属性 offerTemplatesByGuestUserLanguage
的模板有关:
{{#each offerTemplate in offerTemplatesByGuestUserLanguage}}
...
{{/each}}
我忘了第二个在控制器的computed属性中添加第二个属性content.guestUser.language
:
offerTemplatesByGuestUserLanguage: function() {
var templates = this.get("offerTemplates"),
guestUserLanguageCode = this.get("content.guestUser.language.code");
return templates.filter(function (item) {
return item.get("language.code") === guestUserLanguageCode;
});
}.property('offerTemplates.@each', 'content.guestUser.language')
我想知道为什么它甚至可以在RC.7中使用。