0

我试图在我的索引页面中呈现三个额外outlet的,一切正常,除了一旦我设置了至少一个插座,正常行为就会被打断。在这里更清楚的是我在做什么

我的IndexRoute路线

renderTemplate: function() {
    this._super();
    this.render('header', { into: 'index', outlet: 'header' });
    this.render('sidebar', { into: 'index', outlet: 'sidebar' });
    this.render('right_side', { into: 'index', outlet: 'right_side' });
}

现在我的路线已被映射,因此index是一种资源并包含内部的所有其他路线。我的视图包含所有outlet设置为渲染和一个未命名的插座,这会导致问题。

如果我没有明确指定要渲染的内容和位置IndexRoute,一切正常,我的模板在我的未命名插座中渲染,链接工作正常,未命名插座获得正确的内容,但是一旦我设置了任何命名插座,未命名插座停止获取任何内容,尽管我正在调用_super().

所以我的问题是如何设置额外的命名插座而不干扰相同的未命名插座的正常工作resource

更新

示例 http://jsfiddle.net/drulia/jM6js/

4

1 回答 1

1

我不太确定 multiple 的问题是什么outlets,但我使用partialhelper 让它工作。

<script type="text/x-handlebars" data-template-name="index">
 {{#linkTo index/foo}}Go to Foo{{/linkTo}} <br>
 {{#linkTo index/bar}}Go to Bar{{/linkTo}} <hr>
 text inside index template
 <hr>
 {{outlet}}
 {{render "sidebar"}}
</script>

这是一个jsfiddle

更新

jsfiddle 已更新为使用{{render}}helper 而不是{{partial}}.

If you're using {{partial}} helper, it will use existing context. If you need to reuse models/controllers, you're better of using {{render}} because it creates a new view/controller/template context for you. Then you might use modelFor or controllerFor hooks.

于 2013-02-17T18:30:29.123 回答