EmberJS嵌套动态路由不会按预期重定向

时间:2017-12-28 22:35:15

标签: javascript ember.js

使用Ember 2.17.0,我似乎无法在其他动态路由下嵌套路由以正确加载。

使用以下文件结构,我希望Show a => ...路由加载新页面。

stacks

features/instances/ ├── edit │   ├── route.js │   └── template.hbs ├── index │   ├── route.js │   └── template.hbs ├── new │   ├── route.js │   └── template.hbs └── view ├── route.js ├── stacks │   ├── route.js │   └── template.hbs └── template.hbs 端点的网址类似于stacks

其中/instances/view/91467053-ba03-33b9-8950-83f0e64b4688/stacks/123456是堆栈模型的ID。但是,当我触发上面的链接时,页面没有重新加载,我仍然在123456路线上。如果我将view标记放入{{outlet}}模板,则会在那里呈现view的内容。但我想在它自己的页面上...

我的router.js

stacks

我在这里做错了什么?我找不到有关ember 2.0 +

的嵌套动态路由的更多信息

2 个答案:

答案 0 :(得分:0)

我希望我能正确理解你的问题。有两种方法可以做到这一点:

1)而不是view/template.hbs将该HTML放入view/index/template.hbs,这样view/stacks/template.hbs将不会共享view模板代码。

2)而不是在stacks路线中嵌套view路线,而是使用instancespath: '/view/:instance_id/stacks/:stack_id'路线拉到InputStream路线,然后相应地移动路线/模板文件

答案 1 :(得分:0)

Ember中的嵌套路线不能像您习惯的那样工作。

在大多数其他视图框架中,嵌套路由意味着对象之间的关系,在Ember嵌套路由中暗示嵌套视图。

因此,例如,如果您希望获得已呈现的消息列表以及在其旁边的详细信息窗格中打开消息的能力,则可以使用messages.index路由来嵌套messages.show路由。

如果你想渲染一些独立的东西(所以没有嵌套在另一个视图中),只需给它自己的路线。