![](/img/trans.png)
[英]Is it possible to load more pages with javascript inside using infinity-scroll?
[英]Authorization interceptor with Infinity-scroll in AngularJS
我正在使用angular-http-auth
來攔截401響應,以便顯示登錄對話框,並在授權用戶時重試失敗的請求。
由於我使用的是infinity-scroll
,因此每增加一次上傳,我都會增加一個偏移值:
var upload = function () {
dataResource.query($scope.model).then(function (result) {
angular.forEach(result.items, function (value) {
$scope.items.push(value);
});
});
}
$scope.uploadMore = function () {
$scope.model.Offset = $scope.model.Offset + 10;
upload();
};
upload();
當我的頁面加載完畢后,它會立即向服務器upload()發出兩個請求,此請求是從此指令調用的,並通過infinity-scroll
將其發送到uploadMore()。
但是,用戶登錄后, 該頁面不會顯示前10個條目,而是連續2次顯示11-20個項目 。
當我嘗試調試它時,我注意到當angular-http-auth
重試請求時,這兩個查詢使用的偏移量值增加了10( $scope.module
參數)。
函數upload()
和uploadMore()
在angular-http-auth
之前運行了2次,所以我猜這就是為什么攔截器對兩個查詢都使用更新參數的原因。
有人可以幫我解決這個問題嗎?
因此,您可以解決此問題,防止執行請求,直到上一個操作完成為止。 更快的方法是:
var pending = false;
var upload = function () {
if(!pending) {
pending = true;
dataResource.query($scope.model).then(function (result) {
pending = false;
angular.forEach(result.items, function (value) {
$scope.items.push(value);
});
});
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.