我有一个rails 4 + emberjs应用程序。我试图在ember中创建嵌套路由。我正在引用http://emberjs.com/guides/routing/defining-your-routes/中的“嵌套路线”部分。所有后期工作路线都很好,但“评论”的路线不起作用。我目前的余烬路线如下:
App.Router.map ->
@resource 'posts', ->
@route 'edit',
path: '/:id/edit'
@route 'show',
path: '/:id'
@resource "comments",
path: '/:post_id/comments'
, ->
@route "new"
我有一个CommentsNewRoute文件:
App.CommentsNewRoute = Ember.Route.extend
model: (params) ->
post: @store.find 'post', params.post_id
并有一个模板作为comments.handlebars包含{{outlet}}和comments / new.handlebars包含'Hello World'。将posts.handlebars和new.handlebars放在帖子模板中以及同一级别。仍然没有渲染。
link-to helper如下:
{{#link-to 'comments.new' id classNames='pull-right' }}Add New Comment{{/link-to}}
问题在于:1)CommentsNewRoute中的params是一个空对象,并且不包含post_id。 2)当我点击指向'/#/ posts / 2 / comments / new'的链接时,不会呈现新的评论模板。 3)如何在新评论页面上显示帖子的对象数据?我做错了什么?
答案 0 :(得分:1)
动态细分值仅适用于动态细分所属的路线。
这意味着您应该在App.CommentsRoute
上加载帖子,然后在App.CommentsNewRoute
,see the example上重复使用
App.CommentsRoute = Ember.Route.extend({
model: function (params) {
return this.store.find('post', params.post_id);
}
});
App.CommentsNewRoute = Ember.Route.extend({
model: function () {
return this.modelFor('comments');
}
});