2016-12-16 10 views
0

Я пытаюсь перехватить введенный URL-адрес, получить его параметры, сохранить их в службе (которую могут использовать другие службы), затем перенаправить на /.Перехват URL-параметров и их сохранение в службе

var config = function (AppConfig, $urlRouterProvider) { 
    'ngInject'; 

    $httpProvider.interceptors.push(function ($q, $location) { 
     return { 
      'request': function (config) { 
       var params = $location.search(); //How can I store these params ? 
      } 

     } 
    }); 

    $urlRouterProvider.otherwise(AppConfig.defaultRoute); 

}; 
+0

объявить переменную в корневой области видимости и использовать для сохранения данных. или вы можете использовать 'localStorage' или' sessionStorage' в зависимости. – Jhecht

ответ

0

Вы можете определить сервис или завод, чтобы сохранить эти значения, а затем добавить эту службу в качестве зависимости для других служб;

.service('storedURLs', function() { 
    var urls= []; 
    return { 
     add: function(newURL) { 
      urls.push(newURL); 
     }, 
     geturls: function() { 
      return urls; 
     } 
    }; 
}) 

И внутри перехватчика можно использовать:

$httpProvider.interceptors.push(function ($q, $location, $injector) { 
     return { 
      'request': function (config) { 
       var params = $location.search(); 
       var urlService= $injector.get('storedURLs'); 
       urlService.add(params); 
      } 

     } 
    });