我使用angularjs
ngRoute
委託不同的HTML模板,例如:如何通過angularjs中的查詢參數重定向url?
phonecatApp.config(['$routeProvider',
function($routeProvider) {
$routeProvider.
when('/phones', {
templateUrl: 'partials/phone-list.html',
controller: 'PhoneListCtrl'
}).
when('/cars', {
templateUrl: 'partials/car-detail.html',
controller: 'CarDetailCtrl'
});
//many more routes
}]);
問題:我想有一個共同的URL,如localhost/my-app?myparam=Nokia
。
我想比較myparam
到映射表。如果參數名稱是電話公司,我想要委託給/phones
。如果是汽車公司,我想代表/cars
等。你明白了。
此外我必須重寫URL如下:localhost/myapp/phones?myparam=Nokia
。因此ngRoute會自動捕獲正確的模板和控制器。
問題:如何攔截初始加載,並根據url參數重定向?
旁註:我不能重寫routeProvider配置,例如通過使用不同的插件,如angular-ui-router
。
但是這種方法會自動將'templates'鏈接到'controllers'嗎?這就是我最喜歡ngroute的原因,明確地將它們鏈接在一起並通過url路徑調用它們。 – membersound
@membersound - 是的。假設myparam是「諾基亞」。它會將用戶重定向到partials/phone-list.html,此時$ routeProvider會意識到並知道使用相應的模板和控制器 – Elliott
因此,我必須保留ngRoute的'.config',並另外使用您的servicecontroller方法來調用這些路由?如果是,我如何確保您的控制器在ngRoutes評估之前攔截? – membersound