2016-02-12 99 views
0

我有一個<select>元素,我用ng-options添加插入可用值NG-重複,我的代碼是這樣角NG選項與額外的選項

<select ng-model="selectedCollection" 
    ng-options="collection.collectionName for collection in seriesCollection"> 
</select> 

這工作得很好,並在$scope.selectedCollection我有整個collection對象。

現在我需要根據一些參數添加一些額外的<option>元素。我認爲最好的方法是避免使用ng-options,做這樣的事情

<select ng-model="selectedCollection" 
    <option value='c1' ng-if="case1">somevalue</option> 
    <option value='c2' ng-if="case2">somevalue2</option> 
    <option ng-repeat="collection in seriesCollection"> 
     {{ collection.collectionName }} 
    </option> 
    <option value='c3' ng-if="case3">somevalue3</option> 
</select> 

這樣selectedCollection包含一個字符串名爲C1,C2或C3中選擇「靜態」選項時,但我想它包含當其中一個被選中時,整個collection對象。

我試過<option ng-repeat="collection in seriesCollection" value="{{ collection }}">但是然後存儲的值不是collection對象,而是一個表示它的序列化的字符串。我能怎麼做?

+1

嘗試'你選擇NG-value'之一。 –

+0

似乎不起作用,這樣'selectedCollection'變量包含一個像這樣的字符串值[「[Object Object]」,而不是「真正的」集合對象 – Naigel

+1

如果您使用ng-repeat創建選項那麼該模型將是一個字符串,實現對象綁定,你將需要使用ng-options – maurycy

回答

1

不幸的是,你試圖實現不了。 它是ngOptions指令,負責將對象綁定到模型上,並且任何其他方法(如ngRepeat)將設置模型爲字符串,因此值不能爲對象,並且與ngOptions混合使用html option將不起作用。

可以利用ngChange或個案添加到收藏和使用過濾器只返回應顯示