在特定的列设计中使用* ngFor

时间:2019-05-15 20:40:37

标签: css angular

在父项下重复n次的4个div是什么方法?例如:

<div class="container" *ngFor="let item of items">
        <div class="parent">
            <div>{{item.name}}</div>
            <div>{{item.name}}</div>
            <div>{{item.name}}</div>
            <div>{{item.name}}</div>
        </div>
        <div class="parent">
            <div>{{item.name}}</div>
            <div>{{item.name}}</div>
            <div>{{item.name}}</div>
            <div>{{item.name}}</div>
        </div>
    </div>

输出应为:

[1] [2] [3] [4]
[5] [6] [7] [8]

1 个答案:

答案 0 :(得分:0)

您将必须实现将一维数组转换为二维数组的函数,以便可以使用两个* ngFor循环。

请参阅此Stackblitz with a working example

相关代码:

HTML:

<div class="container" >  
    <div class="parent" *ngFor="let row of getGroupedItems()" >
        <div class="item" *ngFor="let item of row">{{item}}</div>        
    </div>    
</div>

TS:

items = ['item1', 'item2', 'item3', 'item4', 'item5', 'item6', 'item7', 'item8']

getGroupedItems() {
    let grouped = [];
    for (let i = 0; i < this.items.length; i++) {
      const j = Math.floor(i / 4);
      if (i % 4 == 0) {
        grouped[j] = []
      }
      grouped[j].push(this.items[i]);
    }
    return grouped;
  }