angular $routeprovider бесконечный необязательный параметр
Я пытаюсь создать менеджер файлов и папок, используя angular-js.
Поэтому мне нужны бесконечные необязательные параметры для folderIds для обработки этого:example.com/drive/1/2/3/4/5/...
Есть ли у нас что-то вроде этого:
$routeprovider.when('/drive/[:folderId?]', {
controller: 'driveCtrl',
templateUrl: '/app/views/drive.html'
})
вместо этого:
$routeprovider.when('/drive/:folderId1?/:folderId2?/:folderId3?/:folderId4?', {
controller: 'driveCtrl',
templateUrl: '/app/views/drive.html'
})
1 ответ
Если вы используете https://github.com/angular-ui/ui-router, вы можете определить пользовательский тип параметра, если вы хотите, чтобы он содержал косую черту, как описано здесь. Вы также можете увидеть этот ответ.
Например:
$urlMatcherFactory.type("FolderType", {
encode: function(val) { return val != null ? val.toString() : val; },
decode: function(val) { return val != null ? val.toString() : val; },
is: function(val) { return this.pattern.test(val); },
pattern: /([^/]+\/?)+/ // this should catch /example.com/drive/1/2/3/4/5/ in one param
});
$stateProvider.state('drive', {
url: '/drive/{folder:FolderType}',
controller: 'driveCtrl',
templateUrl: '/app/views/drive.html'
});