2016-12-16 72 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); 
      } 

     } 
    }); 
相關問題