我的应用程序将有一个侧边栏,其内容会根据当前路线而变化。因此,如果有人访问account
,则边栏上的内容将与有人访问members
时的内容不同。
我试图用accounts
路线做这件事,但我遇到了问题。我正在使用此代码
Dashboard.AccountRoute = Ember.Route.extend({
renderTemplate: function() {
this.render('account_choices', {
outlet: 'choices',
into: 'sidebar'
})
}
});
我的application
模板是:
{{render header}}
{{render sidebar}}
<div id="outlet" class="main">
{{outlet}}
</div>
我的sidebar
模板是:
<div class="sidebar">
{{outlet choices}}
</div>
但它不会将account_choices
呈现到choices
模板中的插座sidebar
。它还会产生错误Assertion failed: Error while loading route: TypeError: Cannot call method 'connectOutlet' of undefined
。
如何将account_choices
模板呈现到choices
的{{1}}商店?
答案 0 :(得分:2)
这有点难以解释,但是整个路径都在前面连接,并且命名的出口sidebar
在呈现之前不存在。幸运的是,您可以稍后在运行循环中连接渲染,然后dynamic named outlet
将存在。
renderTemplate: function() {
var self = this;
Em.run.later(function(){
self.render('account_choices', {
outlet: 'choices',
into: 'sidebar'
});
});
}