我使用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