作者热门文章
- xml - AJAX/Jquery XML 解析
- 具有多重继承的 XML 模式
- .net - 枚举序列化 Json 与 XML
- XML 简单类型、简单内容、复杂类型、复杂内容
我想知道我如何拥有多个路由参数,如果你们中的任何人可能知道它的教程或答案,我将非常感激。
这是我正在做的 http://jaysg.com/newApp/#/
我希望它是#/:region/:country/:city
所以这是 Controller
angular.module('NoteWrangler').controller('NotesShowController', function ($scope, $routeParams, $http){
$scope.title = $routeParams.title;
$http.get('js/data/notes.json').success(function(data) {
$scope.note = data.filter(function(entry){
return entry.title === $scope.title;
})[0];
});
});
路由.js
angular.module('NoteWrangler')
.config(function($routeProvider){
$routeProvider.when('/notes', {
templateUrl: 'templates/pages/notes/index.html',
controller: 'NotesIndexController',
controllerAs: 'indexController'
})
.when('/users', {
templateUrl: 'templates/pages/users/index.html',
})
.when('/', {
templateUrl: 'templates/pages/notes/index.html',
controller: 'NotesIndexController',
controllerAs: 'indexController'
})
.when('/:countryName', {
templateUrl: 'templates/pages/notes/country-detail.html',
controller: 'CountryDetailCtrl'
})
.when('/notes/:title', {
templateUrl: 'templates/pages/notes/show.html',
controller: 'NotesShowController',
controllerAs: 'showController'
})
.otherwise( { redirectTo: '/' } )
;
});
最佳答案
$routeProvider.when('/:region/:country/:city', ...
在 Controller 中:
$routeParams.region
$routeParams.country
$routeParams.city
注意,每 3 个参数 road 对于这个措辞都是正确的,意思是:
如果您有 2 条道路:
$routeProvider.when('/:region/:country/:city', ...
$routeProvider.when('/:user/:name/:birthdate', ...
/one/two/three => /:region/:country/:city
/12/john/1987 => /:region/:country/:city
如果你反转它:
$routeProvider.when('/:user/:name/:birthdate', ...
$routeProvider.when('/:region/:country/:city', ...
/one/two/three => /:user/:name/:birthdate
/12/john/1987 => /:user/:name/:birthdate
所以我觉得最好放一个固定的起始路线:
$routeProvider.when('/geo/:region/:country/:city', ...
/geo/IDF/France/Paris => /geo/:region/:country/:city
[编辑] 为了执行您在评论中解释的内容:
我会做的是:
$routeProvider.when(':region/:country?/:city?', ...
注意 ?,这意味着该参数是可选的。
它将解决:
NA
NA/Mexico
NA/Mexico/Cancun
并且在你的 Controller 中检查你的 $routeParams 参数是否为 null 以了解你是否有一个两个或三个参数。
关于javascript - 如何在angularjs上有多个$routeParams,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29044472/
我是一名优秀的程序员,十分优秀!