2016-09-15 62 views
0

我有下面的對象數組,並希望綁定我的選擇選項,第一個數組項名稱與內部數組項目名稱結合,但沒有成功。ngOptions從AngularJS的內部和外部數組綁定

陣列

"Collections": [ 
        { 
         "Name": "Collection1", 
         "Fields": [ 
         { 
          "Name": "Field1" 
         }, 
         { 
          "Name": "Field2" 
         }, 
         { 
          "Name": "Field3" 
        } 
        ] 
       }, 
       { 
        "Name": "Collection2", 
        "Fields": [ 
        { 
         "Name": "Field1" 
        }, 
        { 
         "Name": "Field2" 
        } 
        ] 
       } 
      ] 

選擇

<select ng-options=" collectionList.Name for collectionList in Collections" class="form-control" ng-model="selected"> 

預計選項

<option value="">Collection1.Field1</option> 
<option value="">Collection1.Field2</option> 
<option value="">Collection1.Field3</option> 
<option value="">Collection2.Field1</option> 
<option value="">Collection2.Field2</option> 

任何幫助表示讚賞。

+0

您可能能夠通過將在NG選項指示一個更復雜的表達式的工作,但我個人只想改造收集成平面陣列並綁定到那個。這不是優雅的,但它解決了這個問題。 – Mic

+0

我對更復雜的表達感興趣。任何示例? – Vicky

+0

不是來自我,因爲我不會那樣做。我會推遲到會的人。 – Mic

回答

0

你可以做到這一點,

<select ng-model='theModel'> 
    <optgroup ng-repeat='group in collection' label="{{group.Name}}"> 
     <option ng-repeat='veh in group.Fields'>{{veh.Name}}</option> 
    </optgroup> 
</select> 

WORKING DEMO

+0

我需要我的模型在選擇該選項時應該返回「Collection1.Field2」這樣的輸出。 – Vicky

+0

@Vicky只是得到模型,並找到父母,並使用它作爲範圍變量 – Sajeetharan

+0

我不能不幸,任何機會,你可以讓我看到小提琴? – Vicky