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

     } 
    }); 
相关问题