EmberJS嵌套动态路由不会按预期重定向
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了EmberJS嵌套动态路由不会按预期重定向相关的知识,希望对你有一定的参考价值。
使用Ember 2.17.0,我似乎无法获得嵌套在其他动态路由下的路由以正确加载。
使用以下文件结构,我希望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
端点的URL看起来像/instances/view/91467053-ba03-33b9-8950-83f0e64b4688/stacks/123456
其中123456
是堆栈模型的ID。然而,当我触发上面的链接时,页面没有重新加载,我仍然在view
路线上。如果我将{{outlet}}
标签放入view
模板,那么stacks
的内容就会呈现在那里。但我想在它自己的页面上...
我的router.js
Router.map(function () {
this.route('instances', function () {
this.route('view', {path: '/view/:instance_id'}, function () {
this.route('stacks', {path: '/stacks/:stack_id'});
});
this.route('edit');
this.route('new');
this.route('all');
});
this.route('error');
});
我在这做错了什么?我找不到有关ember 2.0+的嵌套动态路由的更多信息
我希望我能正确理解你的问题。有两种方法可以做到这一点:
1)而不是view/template.hbs
把这个html放在view/index/template.hbs
,这样view/stacks/template.hbs
将不会共享任何view
模板代码。
2)而不是在stacks
路线嵌套view
路线,你用instances
上升到path: '/view/:instance_id/stacks/:stack_id'
路线,然后相应地移动路线/模板文件
Ember中的嵌套路线不像您习惯的那样有效。
在大多数其他视图框架中,嵌套路由意味着对象之间的关系,在Ember嵌套路由中暗示嵌套视图。
因此,例如,如果您希望获得已呈现的消息列表以及在其旁边的详细信息窗格中打开它们的能力,则可以使用messages.index路由来嵌套messages.show路由。
如果你想渲染一些独立的东西(所以没有嵌套在另一个视图中),只需给它自己的路径。
以上是关于EmberJS嵌套动态路由不会按预期重定向的主要内容,如果未能解决你的问题,请参考以下文章
Ember JS 过渡到嵌套路由,其中所有路由都是视图中的动态段