AngularJS路由器处理URL中的无限参数

时间:2016-01-12 06:58:58

标签: angularjs regex

您好我正在开展我的第一个AngularJS项目。这是我目前的路线,

  $stateProvider
    .state('report', {
      url: '/report/:Id',
      templateUrl: 'templates/report.html'
    })

此处的问题是/report/:reportId仅处理第一级,而我的网址看起来像是/report/:val1/:val2/:val3/:val4/...,依此类推。但它仅匹配/report/:val1之类的网址,而不是之后的任何内容。

如何让我的网址与任何关卡匹配?请帮忙。

1 个答案:

答案 0 :(得分:2)

我自己得到了答案,当我在params之前使用它时,它获得的值与任何级别匹配,但作为单个参数。就像你有" / report / 3/0"之类的东西,控制器的$stateParams3/0。所以我们可以从那里进一步处理。

$stateProvider
    .state('report', {
      url: '/report/*Id',
      templateUrl: 'templates/report.html'
    });

angular.module('app.controllers', [])
.controller('reportCtrl', function($scope, $http, $stateParams) {
      console.log($stateParams);
});

以上代码将打印" 3/0"在控制台中。