首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Angular中循环不同的行(引导行)?

如何在Angular中循环不同的行(引导行)?
EN

Stack Overflow用户
提问于 2020-06-12 19:39:56
回答 3查看 261关注 0票数 2

我在问自己:如何使用*ngFor遍历不同的行?假设给定了一个数组

代码语言:javascript
复制
let arr = [1,2,3,4] // arr can have a arbitrary number of elements

现在,我想循环遍历该数组并显示值。我希望两个元素在一行中(使用bootstrap 4.0)。我的方法是:

代码语言:javascript
复制
<div class="row">
    <div class="col-6" *ngFor="let el of arr"> {{el}} </div>
</div>

现在我会有这个html-code

代码语言:javascript
复制
<div class="row">
    <div class="col-6"> 1 </div>
    <div class="col-6"> 2 </div>
    <div class="col-6"> 3 </div>
    <div class="col-6"> 4 </div>
</div>

但我想这样做:

代码语言:javascript
复制
<div class="row">
    <div class="col-6"> 1 </div>
    <div class="col-6"> 2 </div>
</div>
<div class="row">
    <div class="col-6"> 3 </div>
    <div class="col-6"> 4 </div>
</div>

因为这对于一行中的元素是正确的。我如何才能做到这一点?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2020-06-12 20:05:54

选项1

最快的选择是使用slice管道。但它可能不适合大型数据集。

代码语言:javascript
复制
<div class="row">
  <div class="col-6" *ngFor="let el of arr | slice:0:2"> {{el}} </div>
</div>
<div class="row">
  <div class="col-6" *ngFor="let el of arr | slice:2:4"> {{el}} </div>
</div>

选项2

将数组拆分为数组块并遍历它们。

控制器

代码语言:javascript
复制
export class AppComponent  {
  arr = [1,2,3,4];
  finalArr = [];    // <-- [[1,2], [3,4]]

  constructor(private http: HttpClient){
    for (let i = 0, j = this.arr.length; i < j; i += 2) {
      this.finalArr.push(this.arr.slice(i, i + 2));
    }
  }
}

模板

代码语言:javascript
复制
<div class="row" *ngFor="let arr of finalArr">
  <div class="col-6" *ngFor="let el of arr"> {{el}} </div>
</div>
票数 2
EN

Stack Overflow用户

发布于 2020-06-12 20:13:21

如果col6是固定的,你可以在没有第二个循环的情况下实现它。

代码语言:javascript
复制
<div>
  <ng-container  *ngFor="let el of arr; index as i">
    <div class="row" *ngIf="i%2 === 0">
            <div class="col-6" > {{arr[i]}} </div>
            <div class="col-6" > {{arr[i+1]}} </div>
    </div>
  </ng-container>
</div>

这将如您所期望的那样。

票数 2
EN

Stack Overflow用户

发布于 2020-06-12 19:43:32

从模式上看,它看起来像一个外部循环和一个内部循环将解决问题。外部循环将控制"row“- div内部循环将控制"col-6”- div请试一试。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62343523

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档