根据我的理解,两者的功能相同。但,
ngFor
将像collections吗? ngForOf
将像generics吗? 最佳答案
ngFor
和ngForOf
不是两个截然不同的东西,它们实际上是NgForOf指令的选择器。
如果检查source,您会发现NgForOf指令具有作为其选择器的位置:[ngFor][ngForOf]
,这意味着两个元素都必须存在于元素上才能使指令“激活”。
当您使用*ngFor
时,Angular编译器将该语法解糖为规范形式,该规范在元素上具有两个属性。
所以,
<div *ngFor="let item of items"></div>
对以下对象不满意:
<template [ngFor]="let item of items">
<div></div>
</template>
第一次脱糖是由于“*”。下一个脱糖是因为采用了微语法:“let item of items”。 Angular编译器将其除糖以:
<template ngFor let-item="$implicit" [ngForOf]="items">
<div>...</div>
</template>
(在这里,您可以将$ implicit视为该指令用来引用迭代中当前项目的内部变量)。
以其规范形式,ngFor属性只是一个标记,而ngForOf属性实际上是该指令的输入,该指令指向要迭代的事物列表。
您可以查看Angular microsyntax guide了解更多信息。