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); 
      } 

     } 
    }); 
関連する問題