这是我的代码:
App.Router.map(function () {
....
this.resource('profile', function () {
this.route('user');
this.route('user.edit', { path: '/:user_id/edit' });
this.route('password');
this.route('company');
this.route('company.edit', { path: '/:company_id/edit' });
this.resource('products', function () {
this.route('index');
this.route('show', { path: '/:product_id/show' });
});
});
....
});
App.ProfileRoute = Ember.Route.extend({
redirect: function () {
this.transitionTo('profile.user');
}
});
我有link-to
:
{{#link-to "products.index" }}<i class="icon-barcode icon-2x pull-left icon-border"></i>{{/link-to}}
链接到#/profile/products/index
。但这会触发ProfileRoute
中的重定向,这是不可取的:只要访问#/profile
或#/profile/index
,重定向就应 。
我该怎么做?
答案 0 :(得分:1)
从App.ProfileRoute
更改为App.ProfileIndexRoute
。如下所示:
App.ProfileIndexRoute = Ember.Route.extend({
redirect: function () {
this.transitionTo('profile.user');
}
});
App.ProductsRoute
拥有App.ProfileRoute
路由的父级,因此会触发redirect
(a.k.a beforeModel),并且您会收到不受欢迎的行为。使用App.ProfileIndexRoute
修复了它,因为App.ProfileIndexRoute
只是在调用/profile
时触发了
我希望它有所帮助