我尝试使用对象数组创建页面,到目前为止,我可以使用以下代码来破坏页面。 我的数组会像这样
[
{
"id": 1,"content": "abc","checked":true
},{
"id": 2,"content": "xyz",{
"id": 3,{
"id": 4,"content": "xyz"
}
]
通过下面的代码创建页面
createPageNos() {
var newPageContentLength = 0;
var pageNo = 1;
var pageObj = {
page: `page${pageNo}`,data: []
};
let temp = [];
this.contentArray.map(function (item) {
if (item.checked) {
temp.push(item);
}
})
this.contentViewArray = [];
temp.forEach((item,i) => {
newPageContentLength += item.content.length;
if (i == 0) {
pageObj.data.push({ ...item,ischecked: true });
} else {
if (newPageContentLength < 5000) {
pageObj.data.push({ ...item,ischecked: true });
} else {
this.contentViewArray.push({ ...pageObj });
pageNo += 1;
pageObj = {
page: `page${pageNo}`,data: [{ ...item,ischecked: true }]
};
newPageContentLength = item.content.length;
}
}
if (i == temp.length - 1) {
this.contentViewArray.push({ ...pageObj });
}
});
}
Stackblitz的链接:https://stackblitz.com/edit/angular-jelfzk?file=src/app/app.component.html
页面限制为每页5000个字符 从上面的代码中,如果3个对象分别具有3000和1000和3000个字符,则第一个和第二个对象将完全转到第二个页面,而第三个3000个字符的对象将完全转到第二个页面。 第三个对象1000个字符必须转到第1页,其他2000个字符必须转到第二页。这没有发生,任何人都可以在这个问题上帮助我