0

我有一个内部有一个命名出口的视图。此视图与控制器无关,不能用于我的用例。我似乎无法渲染到那个命名的插座。我将如何正确定位它?

如果视图是命名App.UnassociatedView的,命名的出口是{{outlet potatoOutlet}},并且我希望关联的控制器和视图分别是App.PotatoControllerApp.PotatoView,我如何使这个工作?

我试过了

App.ApplicationRoute = Ember.Route.extend({
    renderTemplate: function() {
        this.render();
        this.render('potato', {outlet: 'potatoOutlet', controller: this.controllerFor('potato')});
    }
});

这个

App.ApplicationRoute = Ember.Route.extend({
    renderTemplate: function() {
        this.render();
        this.render('potato', {outlet: 'potatoOutlet', controller: this.controllerFor('potato'), into: 'application'});
    }
});

和这个

App.ApplicationRoute = Ember.Route.extend({
    renderTemplate: function() {
        this.render();
        this.render('potato', {outlet: 'potatoOutlet', controller: this.controllerFor('potato'), into: 'unassociated'});
    }
});

这是一个 js 小提琴:http: //jsfiddle.net/wmarbut/X8Mu4/

为清晰起见进行编辑

我在小提琴的评论文本中有这个,但忘了把它放在这里。将出口移动到根级别对我来说不是一个选项 b/c 这样做的目标是UnassociatedView在页面加载时实际生成出口。我使插座真正起作用的代码,我只是无法连接它们。

4

1 回答 1

0

我已经稍微修复了你的jsfiddle。

App.IndexRoute = Ember.Route.extend({
  renderTemplate: function(){
    this._super();
    var controller = this.controllerFor('potato');
    this.render('potato', {outlet: 'potatoOutlet', controller: controller});
  }
})

http://jsfiddle.net/X8Mu4/5/

  • 将出口移至根级
  • 将 renderTemplate 覆盖移动到 IndexRoute(因为这是路由到的)
  • 启用 LOG_TRANSITIONS 以帮助调试路由

我建议不要将 ApplicationView 的模板覆盖为索引。导致混乱。

您也不必显式创建 ApplicationView。请参阅:我是否必须为每个 Ember.js 应用程序显式创建一个“ApplicationView”和一个“ApplicationController”?

于 2013-08-08T19:35:56.077 回答