2014-03-07 108 views
0

HTML角動態選擇

<select ng-model="data.retour.selectedAmount" ng-options="c.name for c in getAmountArray(data.retour.amount)"> 
</select> 

angular.extend($scope, { 
    /** 
    * Data properties 
    * @property view 
    */ 
    data: { 
     retour:{} 
    } 
    }); 
    getAmountArray: function (amount) { 
     amount = parseInt(amount, 10); 
     var i, lArray = []; 
     for (i = 1; i < (amount + 1); i++) { 
      lArray.push({name: i}); 
     } 
     return lArray; 
    } 

與上面的代碼我試圖產生動態1-(量+ 1)範圍內的下拉。似乎所有的工作,除了有一個空值添加到下拉列表中。爲什麼添加這個空值?

E.G.當用量爲1生成的列表是

blank 

1 

,它應該是

1 
+0

你開始'i'計數器1而不是0 –

+0

你們,因爲我不希望顯示0做。 (例如,如果數量是10 - > 1,2,3,4,5,6,7,8,9,10應顯示) – Vincent

回答

0

它發生與ng-options,當你不設置您的ng-model。將您的$scope.data.retour.selectedAmount設置爲getAmountArray()返回的其中一個值應解決此問題。

您可以在您的控制器中執行此操作,或者使用ng-init直接在視圖中進行設置。對於〔實施例,下面選擇1,並消除了空白:

<select ng-model="data.retour.selectedAmount" ng-options="c.name as c.name for c in getAmountArray(data.retour.amount)" ng-init="data.retour.selectedAmount = 1"></select> 
+0

這樣做不會刪除空白選項。難道這是因爲arraylist是動態構建的嗎? – Vincent

+0

我不明白爲什麼它不應該工作。我創建了一個[Fiddle](http://jsfiddle.net/ranru/YrKCS/)來演示它。你在'ng-options'中添加了'as c.name'嗎? – kubuntu

+0

你說得對,它適用於你的代碼。但爲什麼你把c.name添加爲? – Vincent