#4 渲染模板

英文原版:https://guides.emberjs.com/v2.13.0/routing/rendering-a-template/

路由的另一個職責就是渲染對應的模板。

默認的,路由處理程序會渲染與其同名的模板。看下面這個路由:

app/router.js

Router.map(function() {
  this.route('posts', function() {
    this.route('new');
  });
});

posts路由會渲染posts.hbs模板,posts.new理由會渲染posts/new.hbs模板。

每個模板都會被渲染到它父路由模板的{{outlet}}中。比如,posts.new路由將會渲染它的模板到posts.hbs模板的{{outlet}}中,並且posts路由會渲染它的模板到application.hbs模板的{{outlet}}中。

如果你不想按照這種默認的形式來進行模板的渲染,那麼你可以設置路由的templateName屬性來指定你想將當前路由模板渲染到哪個路由的模板中:

app/routes/posts.js

import Ember from 'ember';

export default Ember.Route.extend({
  templateName: 'posts/favorite-posts'
});

你也可以覆寫renderTemplate()鉤子函數,如果你想控制模板的渲染的話。在其他方面,它也允許你選擇用來配置模板的控制器和指定{{outlet}}供你渲染路由模板。

本節完

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章