javascript - 在 ngFor 中计数 - Angular 2

标签 javascript ionic-framework angular ngfor

我在计算 Angular 2 中的 ngFor 循环时遇到问题。我正在尝试开发一个具有 3 列和动态行数的网格。我想遍历我的数组并从左到右添加元素,每三个元素应该跳到下一行。我正在使用 Ionic Framework 2.0。

我的代码是这样的:

   <ion-row *ngFor="#m of movies; #i = index"  (click)="movieTapped(m)">
        <ion-col width-33>
            <div class="row responsive-md">
                <img [src]="m.Poster" width="100%" />
                {{m.Title}} <br>
                Rating:     {{m.imdbRating}}<br>
                Rated:      {{m.Rated}}<br>
                Released:   {{m.Year}}<br>
            </div>
        </ion-col>
        <ion-col  width-33>
            <div class="row responsive-md">
                <img [src]="m.Poster" width="100%" />
            </div>
         </ion-col>
         <ion-col width-33>
            <div class="row responsive-md">
                <img [src]="m.Poster" width="100%" />
            </div>
         </ion-col>
  </ion-row>

希望你能帮帮我。

干杯!

最佳答案

如果您不想将数据结构格式化为列组(我可以理解),那么您仍然可以每行呈现 3 列。为此,您需要预先计算额外的行索引辅助数组,例如[0,1,2,3]。数组中元素的数量应等于要呈现的 ion-row 的数量。所以在你的 Controller 构造函数中你可以做这样的事情:

this.rows = Array.from(Array(Math.ceil(this.movies.length / 3)).keys())

然后在模板中你将有两个 ngFor 循环:

<ion-row *ngFor="#i of rows" (click)="movieTapped(m)">
  <ion-col *ngFor="#m of movies | slice:(i*3):(i+1)*3" width-33>
    <div class="row responsive-md">
      <img [src]="m.Poster" width="100%" /> {{m.Title}}
      <br> Rating: {{m.imdbRating}}
      <br> Rated: {{m.Rated}}
      <br> Released: {{m.Year}}
    </div>
  </ion-col>
</ion-row>

就是这样。根据当前行索引切片管道呈现每行必要的项目。

这是简化的演示:http://plnkr.co/edit/WyEfryGccFrJvwm6jExM?p=preview

关于javascript - 在 ngFor 中计数 - Angular 2,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35869758/

相关文章:

php - html文本区域的白名单

android - Ionic android - 使用预签名 URL 将文件上传到 S3(错误代码 : 3)

javascript - 如何计算 Angular JS 应用程序(单页应用程序)的页面加载时间

javascript - 如何在未完成添加序列的情况下从 rxjs 创建数组

javascript - 如何将 Electron 文件从 'require' 转换为 'import' 以与 TypeScript 一起使用? Angular 2+

angular - 'ng' 不是内部或外部命令,也不是可运行的程序 或批处理文件

javascript - 更改事件类型

javascript - 防止页面刷新时显示模型窗口

javascript - 在 react 中更改高阶组件中的 Prop

cordova - 如何安装 cordova 插件的特定提交