Angularjs routeprovider.when用于条件集和一个控制器

时间:2016-02-12 11:42:12

标签: angularjs angularjs-routing

我有3个网址(博客,帮助,提示)用于路由,它将具有相同的控制器和相同的html页面。

rcapp.config(function($routeProvider) {

    $routeProvider

    .when('/csv-validation',{

        templateUrl:'csv-validation.html',
        controller:'csvController'
    })
    .when('/blog',{

        templateUrl:'blog_tips.html',
        controller:'blogTipsController'
    })
    .when('/tips',{

        templateUrl:'blog_tips.html',
        controller:'blogTipsController'
    })
    .when('/help',{

        templateUrl:'blog_tips.html',
        controller:'blogTipsController'
    })
});

我可以在一个条件下为这3个网址做。

1 个答案:

答案 0 :(得分:2)

不是一个.when,但你可以把它放在循环中:

rcapp.config(function($routeProvider) {

    var rp = $routeProvider

    .when('/csv-validation',{

        templateUrl:'csv-validation.html',
        controller:'csvController'
    });

    angular.forEach(['/blog', '/tips', '/help'],
       function(path) { rp = rp.when(path, {
               templateUrl:'blog_tips.html',
               controller:'blogTipsController'
           });
       });
});

或者我认为你可以使用array.reduce:

['/blog', '/tips', '/help'].reduce(function(rp, path) {
    return rp.when(path, {
        templateUrl:'blog_tips.html',
        controller:'blogTipsController'
    });
}, rp);