0

インデックス ページに 3 つの追加の をレンダリングしようとしていますが、outlet少なくとも 1 つのアウトレットをセットアップすると、通常の動作が中断されることを除いて、すべて正常に動作します。より明確にするために、ここで私がやっていることです

私の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、 render に設定されたすべての と名前のないアウトレットが 1 つ含まれているため、問題が発生します。

レンダリングするものと場所を明示的に指定しない場合、問題なくIndexRoute動作し、名前のないアウトレットでテンプレートがレンダリングされ、リンクが正常に機能し、名前のないアウトレットが適切なコンテンツを取得しますが、名前付きのアウトレットをセットアップすると、名前のないアウトレットを呼び出していますが、コンテンツの取得を停止します_super()

私の質問は、同じ名前のないアウトレットの通常の作業を妨げずに、追加の名前付きアウトレットを設定するにはどうすればよいresourceですか?

アップデート

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

4

1 に答える 1

1

複数の問題が何であるかはよくわかりませんが、ヘルパーoutletsを使用して動作するようになりました。partial

<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}}、代わりにヘルパーを使用するように更新されました{{partial}}

ヘルパーを使用している場合は{{partial}}、既存のコンテキストが使用されます。モデル/コントローラーを再利用する必要がある場合{{render}}は、新しいビュー/コントローラー/テンプレート コンテキストが作成されるため、使用する方が適切です。次に、modelForまたはcontrollerForフックを使用する場合があります。

于 2013-02-17T18:30:29.123 に答える