【问题标题】:Dynamically creating rows & columns in Angular + Bootstrap在 Angular + Bootstrap 中动态创建行和列
【发布时间】:2018-09-16 00:56:05
【问题描述】:

我想在角度模板中动态创建行,并且每一行都固定为 4 列。例如。如果我的输入是 40,结果必须有 10 行,每行包含 4 列。我正在使用引导程序作为模板。这是我已经走了多远但没有工作。

<div class="row" *ngFor="let r of row">
  <div class="col-3" *ngFor="let i of id">{{i}}</div>
</div>

.ts 代码:

id: number = 40;
row: number = id / 4;

如何实现结果。问题与矩阵相同,但在模板中如何实现。

【问题讨论】:

    标签: angular typescript


    【解决方案1】:

    试试下面的

      id: number = 40;
      row: number = Math.ceil(this.id / 4);
      row1 = Array(this.row).fill(1);
      id1 = Array(4).fill(0).map((_, index) => index + 1);
      row2 = Array(this.id).fill(1).map((_, index) => index + 1);
    
    constructor() {
        var chunk_size = 4;
        var arr = this.row2;
        var groups = arr.map(function (e, i) {
          return i % chunk_size === 0 ? arr.slice(i, i + chunk_size) : null;
        })
          .filter(function (e) { return e; });
        this.matrix = groups;
      }
    
    <div class="row" *ngFor="let r of row1;let i =index">
      <div class="col-3" *ngFor="let i of matrix[i]">{{i}}</div>
    </div>
    

    例如:https://stackblitz.com/edit/dynamic-row

    【讨论】:

    • 这和我问的不一样。它正在打印 1,1,1,1.... 但我想要 1,2,3,4.... 你能修改它吗?此外,如果输入更改为 3.. 它不会打印任何内容。
    • 立即查看 stackblitz
    • 我想我不够清楚,结果应该是这样的.. row1-> 1,2,3,4, row2-> 5,6,7,8... 这样
    • 它现在可以工作,但是当输入不能完全被 4 整除时,它什么也不显示。例如。在 stackblitz 中将 id 值(40)更改为 39 之类的值。它应该在第 10 行和第 3 列打印直到 39 的数字。
    • @Chellappan,你能看看上面的评论吗,我观察到当输入(id)不能被 4 整除时没有数据显示
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-24
    • 2012-10-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多