余烬父路由重定向到子路由
Ember parent route redirection to child route
我的路线如下所示:
App.Router.map(function () {
this.resource('index', { path: '/' }, function() {
this.resource('label', { path: '/label' }, function() {
this.route('notes', { path: '/:label_id' });
});
this.route('manage', { path: '/manage' });
});
});
用户应仅访问label.notes
和manage
路线。我正在尝试找到如何实现从index
重定向到label.notes
的解决方案。文档中描述的方法之一是:
App.IndexRoute = Ember.Route.extend({
redirect: function() {
this.transitionTo('label.notes', 0);
}
});
这是带有完整示例 http://jsbin.com/UnasOse/1/edit 的 jsbin
。如果用户通过单击链接进行导航,则这有效,但如果manage
通过 url 打开或页面更新,用户将被重定向到 notes
.
那么,如何仅在用户打开根网址(index
)时才实现重定向?
使用您当前的路由器映射,您可以获得路由index.manage
和label.notes
。当页面在index.manage
中刷新时,首先它将转换为父路由,在这种情况下为index
,然后转换为manage
。但是在你index
你有重定向,所以管理不会被处理。
只需删除映射resource('index')
并更新管理路由以反映新配置,因此链接到index.manage
将变得manage
,并且数据模板名称=索引/管理管理等。
更新的路由映射如下:
App.Router.map(function () {
// this.route('index', { path: '/' }); generated by ember
this.resource('label', { path: '/label' }, function() {
this.route('notes', { path: '/:label_id' });
});
this.route('manage', { path: '/manage' });
});
您可以保留 IndexRoute,因为 ember 默认会创建一个this.route('index', { path: '/' })
。因此,您的 IndexRoute 将在用户转到 http://yoursite.com/
您可以在此 jsbin http://jsbin.com/ucanam/1024/edit 中看到该示例的实际效果
相关文章:
- Hapi-js重定向到另一个带有额外请求数据的路由
- 无法使用角度路由提供程序重定向
- 哈希重定向之前使用斜杠的主干路由
- 很难理解laravel中的重定向/路由
- 数据切换=“;下拉菜单”;激活路由重定向,而不是yeoman中的下拉菜单
- 路由提供程序否则重定向到不起作用
- AngularJS仅在浏览器的后退按钮上重定向路由
- AngularJs 和 Codeigniter 路由会导致无限重定向循环
- 余烬重定向仅在您第一次进入路由时触发
- 拉拉维尔重定向::路由不起作用
- 余烬父路由重定向到子路由
- Ionic (AngularJS) - 重定向用户和路由
- 快速重新启动匹配路由-重定向
- 角度路由-重定向到外部站点
- 如何根据接受标头进行路由重定向或发回JSON
- 如何在不使用组件的情况下从angular2路由重定向到外部URL
- js单页应用(SPA) -将所有丢失/未使用的路由重定向到单个控制器动作
- Angular路由重定向到404
- React Router默认路由重定向到/home
- 烬测试路由重定向