2016-02-12 36 views
0

我有3个URL(博客,帮助,提示)路由将具有相同的控制器和相同的HTML页面。Angularjs routeprovider.when设置条件和一个控制器

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个网址一个。当条件。

+0

你的意思是,一个单一的页面,但有三个链接作为博客,提示,帮助 – rroxysam

+0

是的,我的意思是我想写只有一个。当条件,将检查如果URL链接是在这三个(博客,帮助,提示)@ rroxysam – rahulbhondave

回答

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); 
相关问题