Angular.js中的多个参数'在路由期间调用'

时间:2013-09-30 18:40:08

标签: angularjs model-view-controller routing

在路由期间是否可以将多个值传递给'.when'调用?例如,

$routeProvider
    .when('/page1' || '/page2', 
    {

    });

或者我必须单独称呼它们:

$routeProvider
    .when('/page1', 
    {

    })
    .when('/page2', 
    {

    });

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

1 个答案:

答案 0 :(得分: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

消息页控件

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

这样,如果网址不是/page1/page2/page3/page4之一,则视图将重定向到404网页。