仅在父项被直接寻址时重定向

时间:2014-02-06 14:55:01

标签: ember.js

这是我的代码:

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,重定向就应

我该怎么做?

1 个答案:

答案 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时触发了

我希望它有所帮助