2016-02-12 35 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); 
相關問題