Angular 2中<template *ngFor的等效写法是什么?

13

我想做类似这样的事情:

<div *ngFor="let parent of parents">
    <div *ngFor="let child of parent.children">
    </div>
</div>

但我不想要那个额外的外部div。从我搜索到的内容来看,在Angular 1中,我可以通过这样做来实现:

<template *ngFor="let parent of parents">
    <div *ngFor="let child of parent.children">
    </div>
</template>

然而在Angular 2中似乎无法正常工作,正确的做法是什么?


1
请查看 https://angular.io/docs/ts/latest/api/common/index/NgFor-directive.html 的语法部分。 - Michael Liu
3个回答

22

我想这对你应该有效:

<ng-template ngFor let-parent [ngForOf]="parents">
   <div *ngFor="let child of parent.children">
   </div>
</ng-template>

您可以在这里阅读更多内容:

https://angular.io/docs/ts/latest/guide/template-syntax.html#!#star-template

另外,现在您可以使用:

<ng-container *ngFor="let parent of parents">
   <div *ngFor="let child of parent.children">
   </div>
</ng-container>

这里的优势在于它与普通的DOM元素具有相同的语法。


2
如何使用上述语法获取索引(let i = index)? - HGB
2
在Angular 4.x中,它是ng-template - Loolooii
3
HGB,要获取索引,您只需像这样添加let-i="index": <ng-template ngFor let-parent [ngForOf]="parents" let-i="index"></ng-template> - Filip Lauc

6

6

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接