4.6 Routing -- Rendering A Tempalte
生活随笔
收集整理的這篇文章主要介紹了
4.6 Routing -- Rendering A Tempalte
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1. route handler一個重要的任務就是渲染合適的模板到屏幕。
2. 默認的,一個route handler將會呈現模板到最近的父模板。
app/router.js
Router.map(function() {this.route('post'); });app/routes/post.js
export default Ember.Route.extend();3. 如果你想呈現一個和route handler相關模板之外的模板,實現renderTemplate hook:
app/routes/post.js
export default Ember.Route.extend({renderTemplate() {this.render('favoritePost');} });4. 如果你想使用route handler的controller之外不同的controller,傳遞這個controller的名字到controller選項:
app/routes/post.js
export default Ember.Route.extend({renderTemplate() {this.render({ controller: 'favoritePost' });} });5. Ember允許你命名你的outlets。下面的例子使用了明確的名字指定了兩個outelets:
<div class="toolbar">{{outlet "toolbar"}}</div> <div class="sidebar">{{outlet "sidebar"}}</div>所以如果你想要呈現你的posts到sidebar outlet,使用這樣的代碼:
app/routes/post.js
export default Ember.Route.extend({renderTemplate() {this.render({ outlet: 'sidebar' });} });6. 上面描述的所有選項可以被一起使用,你想要什么組合都可以:
app/routes/post.js
export default Ember.Route.extend({renderTemplate() {var controller = this.controllerFor('favoritePost');// Render the `favoritePost` template into// the outlet `post`, and use the `favoritePost`// controller.this.render('favoritePost', {outlet: 'post',controller: controller});} });7. 如果你想要渲染兩個不同的模板到一個路由的兩個不同的被加載的模板的outlets中:
app/routes/post.js
export default Ember.Route.extend({renderTemplate() {this.render('favoritePost', { // the template to renderinto: 'posts', // the template to render intooutlet: 'post', // the name of the outlet in that templatecontroller: 'blogPost' // the controller to use for the template });this.render('comments', {into: 'favoritePost',outlet: 'comment',controller: 'blogPost'});} });轉載于:https://www.cnblogs.com/sunshineground/p/5157783.html
總結
以上是生活随笔為你收集整理的4.6 Routing -- Rendering A Tempalte的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: graph driver-device
- 下一篇: 古剑奇谭藤木之晶在哪 汉典古字的基本解释