angular - angular2 中的 [ngFor] 和 [ngForOf] 有什么区别?

标签 angular typescript ngfor

据我了解,两者都在执行相同的功能。但是,


Is my understanding is correct? or Could you please share more difference's(details) about ngFor and ngForOf?

最佳答案

ngForngForOf 不是两个不同的东西 - 它们实际上是 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了解更多。

关于angular - angular2 中的 [ngFor] 和 [ngForOf] 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43388893/

相关文章:

angular - 禁用标记的 ng-bootstrap 不适用于其他日期选择器示例

angular - ngx-toastr,Toast 未在 Angular 7 中显示

Javascript 不是从 Typescript 生成的

javascript - Angular 5 不显示服务器的响应值

javascript - 如何在 Typescript 中为 Array<T> 指定扩展方法?

javascript - Angular - 选择时出错 - NgFor 仅支持绑定(bind)到 Iterables,例如数组

angular - RxJs zip 运算符,检查哪一个抛出错误并根据条件继续?

angular - TS2322 : Type 'string' is not assignable to type 'number'

arrays - Angular 4 ngFor 使用 HTML 遍历对象数组

选择的 Angular 4 在 *ngFor 选项中不起作用