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

标签 angularjs model-view-controller routing

是否可以在路由期间将多个值传递到“.when”调用中?例如,

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

    });

或者我必须像这样单独调用它们:

$routeProvider
    .when('/page1', 
    {

    })
    .when('/page2', 
    {

    });

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

最佳答案

您可以使用命名组:

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

这样,如果url不是/page1/page2/page3/page4之一, View 将被重定向到 404 页面。

关于angularjs - Angular.js中的多个参数 'when'在路由期间调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19101402/

相关文章:

javascript - 使用循环计算数组中新推送的数据

javascript - 在 JavaScript + jQuery 网络应用程序中将 UI 与模型数据链接的最佳实践

regex - Express.js : how to make app. 在 req.param 中得到 ('/[:userId]i' ..)?

html - Angular 2 routerLink 不起作用

typescript - 将类型安全的路由数据传递给 Angular 2 中的路由

javascript - Angularjs $location 第一次不会触发,下次使用旧值

javascript - 为什么 Protractor 有时会返回一个 promise ,有时会返回一个值?

javascript - AngularJS ng-repeat 用于动态子 json 数组

javascript - Backbone.js 基于url片段的状态管理/ View 初始化

swift - 如何通过 Firebase 返回我在数据服务类中创建的对象?