2016-01-12 2 views
3

Привет, Я работаю над своим первым проектом AngularJS. Вот мой текущий маршрут выглядит,Угловой манипулятор AngularJS с бесконечными параметрами в URL

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

Проблема здесь /report/:reportId обрабатывает только первый уровень, в то время как мой URL выглядит как, /report/:val1/:val2/:val3/:val4/... и так далее. Но это только соответствие, когда URL-адрес вроде /report/:val1 и ничего не после.

Как настроить мой URL-адрес на любой уровень? Пожалуйста помоги.

+0

См. Этот ответ. http://stackoverflow.com/questions/26692747/multiple-query-string-parameters-in-angularjs – Thangadurai

ответ

2

Я получил ответ сам, когда я использую его с * перед параметрами, он получает значения, соответствующие любому уровню, но как один параметр. Например, если у вас есть что-то вроде «/ report/3/0», то у контроллера $stateParams есть 3/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» в консоли.

Смежные вопросы