码迷,mamicode.com
首页 > 其他好文 > 详细

4.5 Routing -- Setting Up A Controller

时间:2016-01-25 17:13:42      阅读:180      评论:0      收藏:0      [点我收藏+]

标签:

1. 改变URL可能也会改变屏幕显示哪个模板。然而,如果它们有信息去显示,模板才是有用的。

2. 在Ember.js中,一个模板从一个controller检索信息去显示.

3. 为了告诉controller去展示哪个模板,在路由处理器的setupController钩子中设置它的model属性。

app/router.js

Router.map(function() {
  this.route(‘post‘, { path: ‘/posts/:post_id‘ });
});

app/routes/post.js

export default Ember.Route.extend({
  // The code below is the default behavior, so if this is all you
  // need, you do not need to provide a setupController implementation
  // at all.
  setupController: function(controller, model) {
    controller.set(‘model‘, model);
  }
});

4. setupController hook接受路由处理器相关的controller作为它的第一个参数。在这种情况下,post路由的setupController接受应用程序的controller:posts实例。

5. 指定一个默认之外的controller,设置路由的controllerName属性:

app/routes/special-post.js

export default Ember.Route.extend({
  controllerName: ‘post‘
});

作为第二个参数,它接受路由的处理器model。

6. 默认的setupController hook设置相关controller的model属性到路由处理器的model。

7. 如果你想要配置一个路由处理器相关的controller之外的controller,使用controllerFor方法:

export default Ember.Route.extend({
  setupController: function(controller, model) {
    this.controllerFor(‘topPost‘).set(‘model‘, model);
  }
});

4.5 Routing -- Setting Up A Controller

标签:

原文地址:http://www.cnblogs.com/sunshineground/p/5157731.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!