我已经在代码中使用了.slice()函数来对从API请求(.get)的响应中获取的10个元素进行切片,这使我可以显示10个元素中的9个。>
但是,我想在单击按钮时返回第十个元素。
例如,如果API请求中总共有19个元素,而我将它们切片为(0,9),则在单击按钮后,应将第10个元素添加到下9个元素中,依此类推。
下面是我正在使用的Javascript代码:
getProjects: function() {
this.loading = true;
let url = this.craftURL();
axios.get(url, {
headers: {
Accept: "application/json"
}
}).then(response => {
this.loading = false;
console.log("Response", response.data)
if (response.data.projects) {
response.data.projects.project.slice(0, 9).forEach(project => {
this.projects.push(this.parseProject(project));
});
} else if (response.data.search.response) {
if (response.data.search.response.numberFound == 0) {
this.noProjects = true;
return;
}
response.data.search.response.projects.project.slice(0, 9).forEach(project => {
this.projects.push(this.parseProject(project));
});
if (this.projects.length == response.data.search.response.numberFound) {
this.hideButton = true;
return;
} else {
this.hideButton = false;
return;
}
}
}).catch(error => {
console.log(error);
});
},
this.projects是我在数据中添加的一个空数组。
非常感谢!
答案 0 :(得分:2)
我了解,您希望实现分页以减少负担。您可以设置跳过和限制并获取所需的数据量。请参考文档以了解跳过和限制的想法。
loadMore() {
this.data = {
user:this.username,
skip: this.s+=1,
limit: this.l+=1
}
this.service.getabcd(data).subscribe(x=>{
this.project=x;
}
然后在后端设置限制并像这样跳过
router.post('/abcs/', async (req, res) => {
const ab= await XYZ.find({ username: req.body['user']
}).skip(req.body.skip).limit(req.body.limit);
res.json(ab);
});