我想在我的" angularJs"中实现分页。应用。我有一个下拉菜单,我正在使用angular-ui
。我想在第一个应用程序加载来自" API"的第一组数据。当在ngInfiniteScroll
的帮助下滚动到按钮时,请求来自" API"的下一组数据。例如,首先在请求" URL"我添加" page = 1"作为参数和我添加到"页面"数。
我的问题是,这个分页应该是" API"具有分页功能,或者我可以为任何" API"?
如果" API"需要具备这种能力,你知道任何" API"具有分页功能,所以我可以测试我的应用程序?
感谢任何帮助。
我的代码是here
答案 0 :(得分:1)
API必须支持分页,因为它应该能够使用数据片段响应查询,而不是一次性转储所有数据。
例如:
第1页:
your.api.endpoint/your/resource/path/countries?offset=0&pageSize=50
第4页:
your.api.endpoint/your/resource/path/countries?offset=200&pageSize=50
您可以根据需要为分页构建网址参数,例如: /countries?pageNo=4&pageSize=50
,/countries?from=200&to=250
等。
注意:
实现服务器端分页时,还需要实现服务器端排序和过滤;这是因为在服务器端分页时,客户端只能看到1页数据,因此排序或过滤会不准确。
编辑以显示模拟API响应的示例
在您的服务中,您可能会遇到以下情况:
return $http({
method: 'GET',
url: 'your.api.endpoint/your/resource/path/countries?offset=200&pageSize=50'
})
并且您将其替换为:
var pageOfData = { ... }; // Mocked data here.
return $q(function (resolve, reject) {
resolve(pageOfData);
});