Ember指南中的模板部分介绍了如何使用linkTo帮助程序。但是,我似乎无法找到以下问题的答案:
我有一个页面显示Post对象的一些属性。该页面包含一个“评论”链接,需要显示属于当前帖子的评论。
// Router
App.Router.map(function(match) {
match('/posts').to('posts', function(match) {
match('/:post_id').to('post', function(match) {
match('/').to('postIndex');
match('/comments').to('comments');
});
});
});
// post template
...
{{#linkTo "comments"}}Comments{{/linkTo}}
...
{{outlet}}
如何定义我的CommentsRoute以使用当前帖子的评论填充控制器的内容?
App.CommentsRoute = Ember.Route.extend({
model: function() {
// I need to get the content of the postController here
// this.controllerFor('post') seemed obvious, but doesn't work
post = ????;
post.get('comments')
}
})
提前致谢。
答案 0 :(得分:2)
您可以在路线中使用controllerFor
访问postController:
App.CommentsRoute = Ember.Route.extend({
model: function() {
var controller = this.controllerFor('post');
return controller.get('comments');
}
});
你在使用余烬数据吗?在这种情况下,在加载帖子数据时加载评论数据可能是有意义的。 https://github.com/emberjs/data/blob/master/BREAKING_CHANGES.md#revision-11
更新:Chan get('comments')
至get('comments.content')
更新:还原get('comments')