0
我想渲染2个项目列表,这两个模板均为模型上的each
。将具有不同模型的模板渲染到Ember.js中的指定插座
我试着先渲染主模板,然后将嵌套模板渲染到主模板的某些命名插座上。
但是,当我试着给嵌套的人不同的模式(它们都使用不同的模型阵列),我得到一个错误:
The value that #each loops over must be an Array.
You passed '<DS.PromiseArray:ember451>' (wrapped in (generated homepage controller))
下面是代码:
renderTemplate:function(){
this.render('homepage');
this.render('roomlist',{
'into':'homepage',
'outlet':'roomlist',
'model':this.store.find('room')
});
this.render('activitylist',{
'into':'homepage',
'outlet':'activitylist',
'model':this.store.find('activity')
});
}
编辑:
我的替代想法是在this.set("rooms", this.store.find("room");
之后在模型钩子中使用{{render "roomlist" rooms}}
而不是renderTemplate-hook。但是,把它扔到了几乎同样的错误:
The value that #each loops over must be an Array.
You passed (generated roomlist controller)
有没有办法在嵌套模板特定的控制器中加载模型?因为这些嵌套模板没有自己的路线,所以我尝试在主模板中加载他们的模型,但是这对我来说并不合适。 – 2014-10-28 20:08:34
你可以尝试设置父控制器上的所有模型,然后在你的模板中执行'{{render'nested-controller'somemodel}}' – Asgaroth 2014-10-28 20:23:01