如何构建默认的嵌套资源?

时间:2013-08-12 12:12:10

标签: javascript ember.js ember-router

我的(当前嵌套的)资源的结构存在问题:

我的结构:帖子 - >发布 - >评论 - >新

到目前为止我的代码http://jsbin.com/ewoqed/6/edit

如果您点击帖子,然后点击View Comments,然后点击Add Comment,这几乎是我想要的效果。但是,我希望这是UI的默认行为,而不必单击链接。因此,不必转到/posts/1/comments/new,它只是/posts/1,而且所有模板都会从那里呈现。

我有一种直觉,我不必要地嵌套我的路线,但我不确定如何在我的PostController的负载上附加额外的数据(评论和新的评论记录)。这可能吗?

2 个答案:

答案 0 :(得分:4)

a great post on the hashrocket blog关于何时以及为何嵌套路线。

基本上,当您想要嵌套模板时,您应该嵌套路线,如果您不想渲染模板,则不要嵌套它们。

答案 1 :(得分:3)

好的,有两种方法可以达到你想要的效果:

  1. 你可以在一个钩子中重定向,例如afterModel通过执行this.transitionTo([childRoute])
  2. 您可以使用{{render}}帮助器在父路线中渲染您需要的东西,并且只有父路线
  3. 我认为你想要选项2,因为实际上你不需要单独的网址,你想要一个在你查看它时碰巧有其他东西的帖子网址。这就是为什么我认为你需要{{render}}

    渲染助手in the guides section of the website还有一个更详细的介绍。