将 ngFor 迭代限制为固定数量
Limit ngFor iterations to a fixed number
我有一个带有旋转木马的页面,我想要最多 7 个点,即使我有 10 张幻灯片。
我正在搜索,但我还没有发现任何东西。
这是我的代码
<div class="subject-pagination">
<div class="page-item" *ngFor="let subject of pageIdentityTraitArray.subjects"
[ngStyle]="subject.nid === subjectId ? {'background-color': pageIdentityTraitArray.color} :'' ">
<a [routerLink]="[ '/code-of-ethics/identity-trait', pageId, subject.nid, '1' ]"></a>
</div>
</div>
请问如何限制为 7 个点?谢谢
您可以将索引添加到您的 ngFor 语句中,并在条件中使用它以仅添加最多 7 个链接:
<ul>
<ng-container *ngFor="let page of pages; let i = index">
<li *ngIf="i < 7">
<a [href]="page.link">{{page.name}}</a>
</li>
</ng-container>
</ul>
或者,您可以使用 slice pipe 将数组截断为 7 个元素:
<ul>
<li *ngFor="let page of pages | slice:0:7">
<a [href]="page.link">{{page.name}}</a>
</li>
</ul>
https://stackblitz.com/edit/angular-mmjmqa?file=src%2Fapp%2Fhello.component.html
中显示的两种方法
有可能(如果 Leonardo 指出不太可能)需要导入 SlicePipe:
import { SlicePipe } from '@angular/common';
例如将 slice 应用于您的原始代码:
<div class="subject-pagination">
<div class="page-item" *ngFor="let subject of pageIdentityTraitArray.subjects | slice:0:7"
[ngStyle]="subject.nid === subjectId ? {'background-color': pageIdentityTraitArray.color} :'' ">
<a [routerLink]="[ '/code-of-ethics/identity-trait', pageId, subject.nid, '1' ]"></a>
</div>
</div>
我有一个带有旋转木马的页面,我想要最多 7 个点,即使我有 10 张幻灯片。 我正在搜索,但我还没有发现任何东西。 这是我的代码
<div class="subject-pagination">
<div class="page-item" *ngFor="let subject of pageIdentityTraitArray.subjects"
[ngStyle]="subject.nid === subjectId ? {'background-color': pageIdentityTraitArray.color} :'' ">
<a [routerLink]="[ '/code-of-ethics/identity-trait', pageId, subject.nid, '1' ]"></a>
</div>
</div>
请问如何限制为 7 个点?谢谢
您可以将索引添加到您的 ngFor 语句中,并在条件中使用它以仅添加最多 7 个链接:
<ul>
<ng-container *ngFor="let page of pages; let i = index">
<li *ngIf="i < 7">
<a [href]="page.link">{{page.name}}</a>
</li>
</ng-container>
</ul>
或者,您可以使用 slice pipe 将数组截断为 7 个元素:
<ul>
<li *ngFor="let page of pages | slice:0:7">
<a [href]="page.link">{{page.name}}</a>
</li>
</ul>
https://stackblitz.com/edit/angular-mmjmqa?file=src%2Fapp%2Fhello.component.html
中显示的两种方法有可能(如果 Leonardo 指出不太可能)需要导入 SlicePipe:
import { SlicePipe } from '@angular/common';
例如将 slice 应用于您的原始代码:
<div class="subject-pagination">
<div class="page-item" *ngFor="let subject of pageIdentityTraitArray.subjects | slice:0:7"
[ngStyle]="subject.nid === subjectId ? {'background-color': pageIdentityTraitArray.color} :'' ">
<a [routerLink]="[ '/code-of-ethics/identity-trait', pageId, subject.nid, '1' ]"></a>
</div>
</div>