Angular 2:增加* ngFor by 2或在Pagination中实现两个分页

时间:2017-07-18 20:59:22

标签: html angular angular2-template ngfor

我对Angular很新,我想知道是否有办法将ngFor循环增加2而不是1。

我正在尝试在分页中实现两个分页,其中循环增加为2。

我正在获取具有in的对象。让我们说用户和他们的地址列表。

(首先是NgFor将用户分页为2.如果我有15个用户。将在一个页面中显示2个用户)

li *ngFor="let user of Users | paginate: { itemsPerPage: 1, currentPage: p };let i = index"
{{user[i].firstName}} <--Displaying first userName-->

(第二个NgFor是显示第一个用户的地址列表。让我说他有20个地址。我将把它切成3或4个页面并对其余部分进行分页)

 *ngFor="let address of user[i].address| objectValues |slice:addresspageNumber*2-2:addressPageNumber*5 ; let j = index "
<--First child Pagination code-->

 {{user[i+1].firstName}}  <--Displaying second userName-->

(第三个NgFor是显示第二个用户的地址列表。让我说他有20个地址。我将把它切成3或4个页面并对其余部分进行分页)

 *ngFor="let address of user[i+1].address| objectValues |slice:addresspageNumber*2-2:addressPageNumber*5 ; let j = index ">
<th scope="row">{{address.streetno}}
<--Second child Pagination code-->

<--Parent Pagination code-->

现在,如果我不将第一个ngFor增加2,在下一页中将再次显示第二个用户,我不想这样做。

我要么必须增加2,要么分别为两个孩子实施分页,我不能在一个for循环中进行分页

我想要的只是一个分页中实现的两个单独的分页

Object1.name                              object1.address.street                              object1.address.pin                               - 分页以显示其他地址。

Object2.name                              object2.address.street                              object2.address.pin                               - 显示其他地址的第二个分页。 - 主页分页,点击后会显示另外两个对象详细信息

2 个答案:

答案 0 :(得分:1)

增加2

<div *ngFor="let item of items; let even = even;">
  <div *ngIf="even">
    // content
  </div>

答案 1 :(得分:0)

我认为你不能将*ngFor增加2,因为它的目的是显示一个数组类型的数据;加上我真的不了解你的要求。

但是,您可以将*ngIf%运算符结合使用,以便不对每个第二个条目做出反应。

这可以完成这项工作

<li *ngFor="let item of items; let i = index">
  <span *ngIf="i % 2 === 0"> // or <ng-template if it is better here>

对于任何迭代大小都可以实现相同的效果。只需将2替换为例如10增加10。