我正在尝试创建文件&使用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'
})
答案 0 :(得分:1)
如果您使用angular-ui-router,则可以定义自定义参数类型,如果您希望它包含斜杠,则为described here。您还可以看到this answer。
例如:
$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'
});