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'
});
Другие вопросы по тегам