Ember this.render不使用控制器参数

时间:2014-07-15 11:52:39

标签: ember.js sidebar

我有一个带{{outlet sidebar}}的网站,可以显示导航菜单。

因为导航菜单必须独立于当前路线呈现,所以它开始变得复杂。

首次尝试使用此代码:

Ember.Route.reopen({
    renderTemplate: function() {
        this.render();
        this.render('layout/sidebar', {
            into: 'application',
            outlet: 'sidebar'
         });
    }
});

覆盖我的应用程序中每个路由的renderTemplate方法。 它运作良好。

但是如果我添加要通过的导航控制器,它就不再起作用了。

Ember.Route.reopen({
    renderTemplate: function() {
        var navCont = this.controllerFor('navigation');

        this.render();
        this.render('layout/sidebar', {
            into: 'application',
            outlet: 'sidebar',
            controller: navCont
         });
    }
});

我检查了var navCont,它按预期保存了导航控制器。

有人知道没有控制器的原因吗?

1 个答案:

答案 0 :(得分:1)

我不确定您为什么要使用相同的模板一遍又一遍地渲染相同的插座。您最好只在应用程序模板中使用render

{{render 'navigation'}}

示例:http://emberjs.jsbin.com/jisuwuna/1/edit