2014-02-16 37 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