Angular.js路由中'when'调用中的多个参数

3
可以在路由期间传递多个值到`.when`调用中吗?例如,
$routeProvider
    .when('/page1' || '/page2', 
    {

    });

或者我需要单独地调用它们,例如:
$routeProvider
    .when('/page1', 
    {

    })
    .when('/page2', 
    {

    });

我可以单独调用它们,但我只想要特定的一组顶级页面。我想知道是否可以打包以节省约15行额外代码,或者我必须单独调用它们。

1个回答

1
你可以使用命名组:
$routeProvider.
    when('/page:id'), {
        templateUrl: 'page-template.html',
        controller: 'PageCtrl'
    }).
    when('/404'), {
        templateUrl: '404.html',
        controller: 'NotFoundCtrl'
    }).
    otherwise({
        redirectTo: '/404'
    });

http://docs.angularjs.org/api/ngRoute.$routeProvider

PageCtrl

app.controller('PageCtrl', function($routeParams, $location) {
    switch ($routeParams.id) {
    case 1:
    case 2:
    case 3:
    case 4:
        // code for your base pages
        break;
    default:
        $location.path('/404'); // not base pages, 404
        break;
    }
    // other code
});

在这种情况下,如果URL不是/page1/page2/page3/page4之一,视图将被重定向到404页面。

我有四个基本页面,想要使用特定的模板,但是我想将其他顶级页面重定向到404或主页等。所以,如果:page'page1''page2''page3''page4',则跳转到这些页面,但如果:page不是其中之一,则跳转到404。我可以逐个添加规定,但我想知道是否有一种分组的方法。 - Chad
1
嗯...那是一个解决方案,但我真的很好奇是否可以在物理的.when()调用中完成它。 - Chad
@Chad 我认为捆绑的路由模块目前无法做到这一点。 - Ye Liu
@Chad 看看这个 https://github.com/gregorypratt/AngularDynamicRouting,他试图实现更动态的路由。 - Ye Liu

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接