我有一个AngularJS HTTP拦截器:
$httpProvider.interceptors.push([
"$rootScope", "$q", "$location",
function ($rootScope, $q, $location) {
return {
'request': function (config) {
var loc = $location.path();
console.log("path: " + loc);
....
....
return config;
},
...
};
}
]);
我进行一次调用,返回25个项目的数组。使用ng-repeat将项目填充到html中。此显示导致75次调用请求函数。
任何人都可以解释为什么它会对一个HTTP请求进行如此多的调用吗?
感谢您的帮助。
答案 0 :(得分:2)
http拦截器会被每个请求角度调用,而不仅仅是数据请求。模板请求也是如此,这可以解释为什么它如此之高。
更新:过滤模板我总是使用以下功能。
function isLocalUrl(url) {
return !(url.indexOf('http://') === 0 || url.indexOf('https://') === 0);
}
并将其称为:
return {
'request': function (config) {
if(isLocalUrl(config.url))
return config;
}
}