我有一个 Rails 4 + emberjs 应用程序。我正在尝试在 ember 中创建嵌套路由。我指的是 http://emberjs.com/guides/routing/defining-your-routes/ 中的“嵌套路由”部分。所有后期防御路线都工作正常,但“评论”路线不起作用。我当前的 ember 路线如下:
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'。将 comments.handlebars 和 new.handlebars 放置在帖子模板内并处于同一级别。尽管如此,仍然没有渲染。
帮助程序的链接如下:
{{#link-to 'comments.new' id classNames='pull-right' }}Add New Comment{{/link-to}}
问题在于 1) CommentsNewRoute 中的参数是一个空对象,并且不包含 post_id。 2)当我单击指向“/#/posts/2/comments/new”的链接时,不会呈现新的评论模板。 3)如何在新评论页面上显示帖子的对象数据?我做错了什么?
最佳答案
动态航段值仅适用于动态航段所属的航线。
这意味着您应该在 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');
}
});
关于javascript - 如何定义嵌套路由+ ember不渲染嵌套路由的模板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26772554/