如何在AngularJS中设置具有默认回退状态的嵌套状态

时间:2013-12-11 14:21:30

标签: angularjs angular-ui angular-ui-router

AngularJs中是否有一种方法可以定义每个嵌套根状态的回退?

如果找到不匹配的网址,我有以下内容将用户重定向到主页

    $urlRouterProvider.otherwise("/operations/home");

但是当我使用嵌套状态时,我试图设置每个基类型的回退。喜欢例如 如果我得到/admin/some_thing_unknown我想重定向到/admin/home/client/some_thing_unknown重定向到/client/home

我尝试使用以下内容,但这不起作用。

    $urlRouterProvider
    .when("/admin",  '/admin/home')
    .otherwise("/client/home");

这只会将/admin重定向到/admin/home,其他任何内容都会重定向到/client/home

是否有可能实现这一目标?使用$stateProvider$urlRouterProvider

此致,Kiran

1 个答案:

答案 0 :(得分:0)

您可以将函数传递给otherwise并根据尝试的网址添加一些逻辑来确定目标网址

Try it out on JsFiddle

$routeProvider
.when('/page1', {
    controller: 'MyCtrl',
    templateUrl: 'page1.html'
})
.when('/page2', {
    controller: 'MyCtrl',
    templateUrl: 'page2.html'
})
.otherwise({
    redirectTo: function(routeParams, path) {
        //this would extract "page1" from "/page1/anything"
        return path.split("/")[1];
    }
});