Как проанализировать закодированный URL, который является параметром запроса в маршруте Angular 1? - PullRequest
0 голосов
/ 06 июня 2018

В моих маршрутах у меня есть это.Тем не менее, я не могу найти способ правильно декодировать URL.Страница просто перенаправляет на базовый URL-адрес (не URL-адрес перенаправления).URL закодирован так, что / равны %2F, а что нет, но я не знаю, как это сделать, чтобы я мог принять его в качестве параметра запроса.

.config(['$stateProvider', '$urlRouterProvider', function ($stateProvider, $urlRouterProvider) {
   $stateProvider
   .state('example', {
     url: '/{test}/{queryParameterUrl}',
     controller: 'exampleCtrl as example',
     template: require('./partials/test.html')
   });

1 Ответ

0 голосов
/ 06 июня 2018

В вашем exampleController вы можете получить доступ к параметру состояния, проанализировать его и использовать для последующего перенаправления, например:

app.controller('exampleCtrl', ['$state', function ($state) {
    var exampleCtrl = this;

    exampleCtrl.parsedRedirectUrl = $state.params.urlredirect.replace(/%2F/g, '/')
}]);

А в HTML, например, перенаправление по ссылке

<a href="{{example.parsedRedirectUrl}}">Redirect</a>

PS В своем определении штата используйте controllerAs

.config(['$stateProvider', '$urlRouterProvider', function ($stateProvider, $urlRouterProvider) {
    $stateProvider
        .state('example', {
         url: '/{test}/{urlredirect}',
         controller: 'exampleCtrl',
         controllerAs: 'example',
         template: require('./partials/test.html')
    });
...