我有一个carsList
数组有5个值。我尝试slice
2乘2
<table>
<tr *ngFor="#item of carsList | slice:0:2; #i = index">
<td>{{i}}. {{item}}</td>
</tr>
</table>
以上代码仅分割2个值。我希望切片2比2。
Example
0 1
2 3
4 5
代码:
https://plnkr.co/edit/BZnaSIldgO3Dmwao1mo6?p=preview
请帮助我。我错了。
答案 0 :(得分:1)
slice
pipe会产生一个包含2个元素的数组,ngFor
将遍历结果数组中的元素,但不会提供预期的结果。
要获得结果,您需要转换数组结构或使用嵌套ngIf
的其他ngFor
执行此类操作。
<table>
<ng-container *ngFor="#item of carsList; #i = index">
<tr *ngIf="i % 2 === 0">
<td *ngFor="#item1 of carsList|slice:i:i + 2; #i1 = index" class="car-title">{{i1}}. {{item1}}</td>
</tr>
</ng-container>
</table>
或删除嵌套的ngFor
,只需手动创建2 td
。
<table>
<ng-container *ngFor="#item of carsList; #i = index">
<tr *ngIf="i %2 === 0">
<td>{{i}}. {{item}}</td>
<td>{{ i + 1 }}. {{carsList[i + 1]}}</td>
</tr>
</ng-container>
</table>
仅供参考:其中ng-container
可用于对未放入DOM树的元素进行分组。
更新了plunker link。
答案 1 :(得分:1)
根据OP中的plunker的一个简单修复就是这个(确认它在那里工作),
<ul>
<ng-container *ngFor="#item of carsList; #i = index">
<li *ngIf="i % 2 === 0">
<span class="car-title">{{i}}. {{item}}</span>
</li>
</ng-container>
</ul>
答案 2 :(得分:1)
试试这个 -
<ul>
<ng-container *ngFor="#item of carsList; #i = index">
<li *ngIf="i % 2 === 0">
<span class="car-title">{{i}}. {{item}}</span>
<span class="car-title">{{i+1}}. {{carsList[i + 1]}}</span>
</li>
</ng-container>
</ul>