【问题标题】:angular $routeprovider endless optional param角度 $routeprovider 无尽的可选参数
【发布时间】:2015-11-25 06:46:33
【问题描述】:

我正在尝试使用 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'
})

【问题讨论】:

    标签: javascript angularjs angularjs-routing route-provider


    【解决方案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'
    });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-11-19
      • 1970-01-01
      • 2014-04-03
      • 1970-01-01
      • 2016-01-11
      • 2021-04-16
      相关资源
      最近更新 更多