AngularJS $routeProvider是否有一种简单的方法来让多条路由具有
发布时间:2020-12-17 17:16:17 所属栏目:安全 来源:网络整理
导读:我有两个路由通向相同的视图和控制器(即我只是传入一个id来访问$routeParams并在其上执行控制器逻辑): $routeProvider .when('/about',{ controller: 'AboutController',controllerAs: 'vm',templateUrl: 'about.html' }) .when('/about/:id',templateUrl:
我有两个路由通向相同的视图和控制器(即我只是传入一个id来访问$routeParams并在其上执行控制器逻辑):
$routeProvider .when('/about',{ controller: 'AboutController',controllerAs: 'vm',templateUrl: 'about.html' }) .when('/about/:id',templateUrl: 'about.html' }); 这感觉非常重复.有没有任何速记,像这样? $routeProvider .when(['/about','/about/:id'],{ controller: 'AboutController',templateUrl: 'about.html' }) 解决方法
From
$routeProvider source code,在我看来,这是不可能的. this.when方法接受两个参数,路径和路径.对于多路径,this.when应该接受路径数组作为参数,或从单个字符串中提取多个路径.我在这种方法中没有看到这两个中的任何一个.
this.when = function(path,route) { //copy original route object to preserve params inherited from proto chain var routeCopy = angular.copy(route); if (angular.isUndefined(routeCopy.reloadOnSearch)) { routeCopy.reloadOnSearch = true; } if (angular.isUndefined(routeCopy.caseInsensitiveMatch)) { routeCopy.caseInsensitiveMatch = this.caseInsensitiveMatch; } routes[path] = angular.extend( routeCopy,path && pathRegExp(path,routeCopy) ); // create redirection for trailing slashes if (path) { var redirectPath = (path[path.length - 1] === '/') ? path.substr(0,path.length - 1) : path + '/'; routes[redirectPath] = angular.extend( {redirectTo: path},pathRegExp(redirectPath,routeCopy) ); } return this; }; (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |