2016-11-15 85 views
0

在角環(NG-重複,NG選項),可以使用下面的語法:有人可以解釋Angular as-for-in表達式符號嗎?

item as item.label for item in items 

可有人請解釋每個表達式中的令牌是在那裏做什麼,它意味着什麼?你能指點我的文件嗎?我找不到要搜索的內容(搜索'as'或'for'是無用的)。它在ng-repeat或ng-options的文檔中沒有提及。

我知道它可以讓你從一個對象列表中選擇一個對象,但是'item'出現在表達式中兩次,而且我不清楚該表達式中該標記的作用是什麼。

很抱歉,如果這是所有記錄了一些地方,我找不到....

+0

請參閱[AngularJS ng-options指令API參考](https://docs.angularjs.org/api/ng/directive/ngOptions)。和[PLNKR上的DEMO](https://plnkr.co/edit/SDZnwb32vsLH72m0UHMC?p=preview) – georgeawg

回答

2

您有一個數組「項目」。而你通過它與

item in items 

正如你從本頁「https://docs.angularjs.org/api/ng/directive/ngOptions」通常會創建一個下拉完全複製的例子作用中,就現在的問題是,「項目」對象,你目前在你的迭代比字符串更多的字段顯示爲您的下拉條目的標籤。這是對象:

$scope.items = [{ 
    id: 1, 
    label: 'aLabel', 
    subItem: { name: 'aSubItem' } 
}, { 
    id: 2, 
    label: 'bLabel', 
    subItem: { name: 'bSubItem' } 
}]; 

那麼你想顯示什麼呢?是的,你想顯示「item.label」。 那就是什麼

item as item.label 

呢。它告訴循環使用當前的「item.label」值作爲這個特定循環的「item」。

+0

你可以寫'whatyouwant as item.label',但是這個例子會誤導你,如果你期望第一個'item'有用 – Suicideboy

+1

這很好,但不完整。我有另一個例子'item.name作爲item.label',它的工作原理!但是我不知道'name'對第一項有什麼影響。這兩個'項目'需要匹配嗎?我可以使用'a作爲項目中的c的b.label',如果不是,爲什麼不呢? – AgilePro

相關問題