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



AngularJs 中有没有办法定义每个嵌套根状态的回退?

我有以下内容,以便在找到不匹配的URL时将用户重定向到主页

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

但是 I 正在尝试在使用嵌套状态时设置每个基本类型的回退。 例如如果我得到/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

问候,基兰

您可以将函数传递给otherwise并添加一些逻辑以根据尝试的 url 找出目标 url

在 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];
    }
});

最新更新