Angular无限滚动
Angular Infinite scrolling
我正在尝试为我的应用程序实现这个 plunk 示例 http://plnkr.co/edit/p6Dt3yvTq40Vn56AKiqC?p=preview。这是客户端:
$scope.fetch = function($select, $event) {
if ($scope.loading) {
return;
}
// no event means first load!
if (!$event) {
$scope.page = 1;
$scope.items = [];
} else {
//$event.stopPropagation();
//$event.preventDefault();
$scope.page += 1;
}
$scope.loading = true;
$http({
method: 'GET',
url: 'http://localhost/search/books',
params: {
q: $select.search,
page: $scope.page
}
}).then(function(books) {
$scope.items = $scope.items.concat(books.data.items);
})['finally'](function() {
$scope.loading = false;
});
};
但是一旦我到达结果的末尾,就会出现一个循环,并且滚动会继续获取我的数据库和 return 一个空数组。
在我的后端,我会在达到限制时发送一个值,但是一旦达到限制,我如何才能停止客户端的滚动?谢谢
$scope.search = 'not specified';
$scope.limit = false;
$scope.fetch = function($select, $event) {
if ($scope.loading) {
return;
}
// no event means first load!
if (!$event) {
$scope.page = 1;
$scope.items = [];
} else {
//$event.stopPropagation();
//$event.preventDefault();
$scope.page += 1;
}
if($scope.search != $select.search || !$scope.limit)
{
$scope.search = $select.search;
$scope.loading = true;
$http({
method: 'GET',
url: 'https://api.github.com/search/repositories',
params: {
q: $select.search,
page: $scope.page
}
}).then(function(resp) {
$scope.items = $scope.items.concat(resp.data.items);
$scope.limit = resp.data.limitReached;
})['finally'](function() {
$scope.loading = false;
});
}
};
我正在尝试为我的应用程序实现这个 plunk 示例 http://plnkr.co/edit/p6Dt3yvTq40Vn56AKiqC?p=preview。这是客户端:
$scope.fetch = function($select, $event) {
if ($scope.loading) {
return;
}
// no event means first load!
if (!$event) {
$scope.page = 1;
$scope.items = [];
} else {
//$event.stopPropagation();
//$event.preventDefault();
$scope.page += 1;
}
$scope.loading = true;
$http({
method: 'GET',
url: 'http://localhost/search/books',
params: {
q: $select.search,
page: $scope.page
}
}).then(function(books) {
$scope.items = $scope.items.concat(books.data.items);
})['finally'](function() {
$scope.loading = false;
});
};
但是一旦我到达结果的末尾,就会出现一个循环,并且滚动会继续获取我的数据库和 return 一个空数组。
在我的后端,我会在达到限制时发送一个值,但是一旦达到限制,我如何才能停止客户端的滚动?谢谢
$scope.search = 'not specified';
$scope.limit = false;
$scope.fetch = function($select, $event) {
if ($scope.loading) {
return;
}
// no event means first load!
if (!$event) {
$scope.page = 1;
$scope.items = [];
} else {
//$event.stopPropagation();
//$event.preventDefault();
$scope.page += 1;
}
if($scope.search != $select.search || !$scope.limit)
{
$scope.search = $select.search;
$scope.loading = true;
$http({
method: 'GET',
url: 'https://api.github.com/search/repositories',
params: {
q: $select.search,
page: $scope.page
}
}).then(function(resp) {
$scope.items = $scope.items.concat(resp.data.items);
$scope.limit = resp.data.limitReached;
})['finally'](function() {
$scope.loading = false;
});
}
};