拦截 URL 个参数并将它们存储在服务中
Intercept URL parameters and store them in a service
我正在尝试拦截输入的 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);
};
您可以定义一个服务或工厂来存储这些值,然后将此服务添加为其他服务的依赖项;
.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);
}
}
});
我正在尝试拦截输入的 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);
};
您可以定义一个服务或工厂来存储这些值,然后将此服务添加为其他服务的依赖项;
.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);
}
}
});