2014-02-16 119 views
1

我有這個小demoAngularJs的ng選項 - 澄清?

基本上,它是一個select元素與此數據:

address: { 
      select: { 
       code: "0", 
       name: "Select proof of address" 
      }, 
      letter: { 
       code: "1", 
       name: "Letter" 
      }, 
      photograph: { 
       code: "2", 
       name: "Photograph" 
      } 
     } 

這裏是select

<select ng-model="current.addressCode" ng-options="value.code as value.name for (key,value) in student.address"</select> 

問題:

問題#1 - 綜觀Ng doc -

enter image description here

所以,我儘量

value.code as value.name for (key,value) in student.address

比較第二行(這是我覺得最合適的)

select as label for (key , value) in object 

這到底是怎麼回事?

value.codeselect ???

的Html select元素有一個option標籤與value和內部text,如:

<option value="volvo">Volvo</option>這就是一切。

他們的文檔意味着什麼?

問題2

我如何MYNE的這個對象綁定到一個普通理智value,text選擇?

(我想codevaluename是作爲text

目前我沒有看到DOM中的任意值:

enter image description here

回答

1

你理解是正確的,示例二適合您的需求,即:

select as label for (key , value) in object 

這裏,作爲文檔中提到:

select: The result of this expression will be bound to the model of the 
     parent <select> element. If not specified, select expression will 
     default to value. 

所以,爲您的使用情況下,選擇標記現有的代碼結構正確:

<select ng-model="current.addressCode" ng-options="value.code as value.name for 
     (key,value) in student.address"></select> 

value.code值存儲在current.addressCode同時,在選擇下拉菜單,你應該看到value.name作爲選項標籤。

編輯:因此,要回答你的問題:
問題1
在這種情況下,「選擇」是一個變量名 - 一個佔位符,如果你可能會喜歡的文檔,它解釋(它進一步在下面)。在你的代碼,這是用來代替選擇變量的值是

問題2
完全按照您剛纔提到被綁定到選擇的ng-model的一個(在你的情況,value.code):

<select ng-model="current.addressCode" ng-options="value.code as value.name for 
      (key,value) in student.address"></select> 

這會給你必要的價值,自動選擇文本標籤。當你選擇一個選項,與該選項相關的value.code被存儲在current.addressCode

+0

那麼爲什麼我沒有看到價值,當我做「檢查元素」? –

0

http://jsfiddle.net/7FL76/1/

這個怎麼樣:

它需要簡單的變化:

address: [ 
      { 
       code: "0", 
       name: "Select proof of address" 
      }, 
      { 
       code: "1", 
       name: "Letter" 
      }, 
      { 
       code: "2", 
       name: "Photograph" 
      } 
     ] 

的原因是你的是相同的嵌套名稱(像,字母 - 字母),所以json是有點冗餘。

因爲你會看到。

value as a code,and text as a name