[英]AngularJS, ng-options
我研究了AngularJS,但我無法理解ng-options
指令中表達式的含義,這是代碼的鏈接,以下是我無法理解的內容:
ng-options="net for net in networks"
我看過文檔 ,文檔將上面的表達式解釋為:
數組中值的標簽
因此,每個選項中都有value屬性,該值表示數組中的鍵,我的問題是net for net in networks
的表達式net for net in networks
是如何工作的,我的意思是:
net
是鍵,第二個是值,因此表達式“說”將那個值的鍵放在netwroks
數組內,並將其放在每個option元素的每個value屬性內。 net for net
如何影響ng-model="network"
這是我對您的文檔的簡單解釋:
label
是顯示給用戶的選項元素的內容。
value
是選擇該選項時放置在ngModel綁定中的值,而不是您假設的option元素的value屬性。
option元素的value屬性通過角度設置為array
中關聯項目的索引(如您所查看的是否在plunker示例中檢查select元素一樣)。
編輯 :
您可以將ng-options
視為foreach
循環。 由於networks
在這種情況下是一個字符串數組,因此net
只是成為數組中的每個字符串項。
如果網絡是一組對象,情況將有所不同。 給定的networks
看起來像這樣:
var networks = [
{ id: 10, name: 'Verizon' },
{ id: 20, name: 'AT&T' },
{ id: 30, name: 'Sprint' },
];
net
將成為數組中的每個對象。 在這種情況下,您可以net.name for net in networks
使用表達式net.name for net in networks
來顯示net.name for net in networks
的名稱,但為ngModel綁定network
賦予對象本身的值。 如果您想使用id
作為值,則可以使用表達式net.id as net.name for net in networks
。 在此處查看更新的代碼。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.