ヘルパーレンダリングの非常に良い説明については、パーシャル、アウトレット、およびテンプレートでこの質問を参照してください。
大まかな要約と同じように、これらのヘルパーをどのように使用するか:
{{render"navigation"}} ->この場所でNavigationControllerとNavigationViewをレンダリングします。これは、ナビゲーションなど、コントローラーとビューが変更されない場所に適したヘルパーです。
{{outlet "detailsOutlet"}} ->これにより、Components(Controller + View)をレンダリングできるスタブ/フック/ポイントが提供されます。ルートのrenderメソッドでこれを使用します。あなたの場合、あなたはおそらくこのように見えるかもしれない詳細なルートを持っているでしょう。これにより、DetailsViewを含むDetailsControllerがインデックステンプレートのアウトレット'detailsOutlet'にレンダリングされます。
App.DetailsRoute = Ember.Route.extend({
renderTemplate: function() {
this.render('details', { // the template/view to render -> results in App.DetailsView
into: 'index', // the template to render into -> where the outlet is defined
outlet: 'detailsOutlet', // the name of the outlet in that template -> see above
});
}
});
{{view App.DetailsView}} ->これにより、現在のコンテキスト/コントローラーを保持しながら、指定されたビューがレンダリングされます。コンテキストを変更する場合があります。たとえば、マスターエンティティを使用して、その詳細を次のようなビューに渡します。
{{view App.DetailsView contextBinding = "masterEntity.details"}}
これは、アクション/イベントの処理などの独自のカスタムロジックを持つ、コンポーネントの特定の部分をサブビューにカプセル化する場合に役立ちます。
{{control}}コントロールは、使用されるたびに新しいコントローラーをインスタンス化することを知っていますが、あなたにぴったりなものはわかりません。また、それを使用するための良い例もありません。