按我的理解,兩者都做同樣的功能。但是,angular2中的[ngFor]和[ngForOf]有什麼區別?
ngFor
會像爲collections作品?ngForOf
會像爲generics作品?
我的理解是正確的?或 能否請您對
ngFor
和ngForOf
分享更差的(詳細信息)?
按我的理解,兩者都做同樣的功能。但是,angular2中的[ngFor]和[ngForOf]有什麼區別?
ngFor
會像爲collections作品?
ngForOf
會像爲generics作品?
我的理解是正確的?或 能否請您對
ngFor
和ngForOf
分享更差的(詳細信息)?
ngFor
和ngForOf
不是兩個不同的東西 - 它們實際上是NgForOf指令的選擇。
如果您檢查source,您會看到NgForOf指令的選擇器爲:[ngFor][ngForOf]
,這意味着這兩個屬性都需要存在於指令「激活」的元素上。
當您使用*ngFor
時,Angular編譯器會將該語法轉換爲其元素上具有兩個屬性的cannonical形式。
所以,
<div *ngFor="let item of items"></div>
desugars到:
<template [ngFor]="let item of items">
<div></div>
</template>
這第一脫糖是由於 '*'。下一個脫糖是因爲微語法:「let item of items」。
<template ngFor let-item="$implicit" [ngForOf]="items">
<div>...</div>
</template>
(在這裏你能想到的$隱含作爲該指令用來指代當前項在迭代內部變量):記述的角度編譯器去糖。
在其規範形式中,ngFor屬性只是一個標記,而ngForOf屬性實際上是指令的輸入,指向您要迭代的事物列表。
你可以查看Angular microsyntax guide瞭解更多。
ngFor
棱角分明的結構指令,它取代了ng-repeat
屬性的AngularJS
您可以使用ngFor
作爲簡寫
<li *ngFor="let item of items">{{item.name}}</li>
或作爲速記版本
<template ngFor let-item="$implicit" [ngForOf]="items">
{{item.name}}
</template>
「速記」和「朗手」是否意味着數據大小?或者是什麼? –
這意味着:用於相同目的和效果的差異 – devnull69
好吧,現在我明白了。但是每當我在文檔'ngForOf:NgIterable
在我意見我從角文件得到,
[ngFor]
不是type safe
[NgForOf]
是type safe
因爲兩個類細節一點不同
ngFor
類型是類型any
但ngForOf
類的細節是 ngForOf : NgIterable<T>
ngForOf
看起來像我已經在我的問題已經提到的仿製藥。
有趣。但是,由於它們是從模板中使用的,所以在實踐中這比在其他情況下更不重要。也就是說,Angular API的數量,包括不適合模板使用的類型,比如'FormBuilder',這些類型都沒有被檢查過,令人不安。 –
顯式版本
(<template ngFor ...>)
允許一次應用該指令將多個元素隱版本
NgFor可以迭代數組,但在ngContainer中,ngContent不能直接迭代ngFor對於迭代,我們可以使用 [ngForOf]。這裏我是可變的,收視率是一個數組。
Ex。
<ng-template ngFor let-i [ngForOf]="ratings">
<option *ngIf="i<=22" [ngValue]="i">{{i}}:00 Hrs.</option>
</ng-template>
在這個例子中,我想同時應用ngFor和ngIf,所以我用它。
另一種觀點是,在一個正常的,如果我們申請ngFor然後在使其轉換成
<template ngFor let-i [ngForOf]="ratings">
<HTML Element>...</HTML Element>
</template>
問得好!我也想問!順便說一句,你的鏈接對於收藏和仿製藥都是一樣的 – Sajeetharan
@Sajeetharan Typo問題。對不起。現在我已經更新了我的問題。謝謝 –
https:// github。com/angular/angular/commit/86b2b2504f336e9ae69dfbc46c6731468781b944 – yurzui