2015-09-09 117 views
0

我想創建一個選擇下拉列表模型,作爲數組的一部分的對象內的特定參數但是我希望「空值」參數實際上有一個值(或簡單地能夠在下拉菜單中插入額外的選項)。在選擇下拉列表中的空值選項

<select class="form-control" ng-model="question.defaultGoToQuestion" ng-options="question.sequence as question.questionHeading for question in survey.questions"> 
    <option value="-1">Finish</option> 
</select> 

然而,角只是簡單地忽略了選擇標記內部,除非它具有空值value=""。不管survey.questions陣列中有什麼,我怎麼能始終選擇value of -1

我還忘了提及的是,-1應該是一個整數,這樣的模式可以總是與整數值,而不是字符串。

快速更新

我想有一些幾乎完全一樣:

<select class="form-control" ng-model="question.defaultGoToQuestion" ng-options="question.sequence as question.questionHeading for question in survey.questions"> 
    <option value="">Finish</option> 
</select> 

除了我需要完成有在完成選項-1值。

+0

你想要哪個選項是有選擇框中開始的一種方式? – Rayon

+0

在選擇框中,我需要查看調查問題列表+一個說明完成並具有「-1」值的選項。值得注意的是,survey.questions可以通過UI進行更改,$ scope.survey變量也會相應更新。 (我會更新這個問題,因爲我不知道如何在評論中發佈代碼) –

回答

0

如果使用這樣的指定鍵/值對,你可以指定你想要的值:

<select ng-model="selectedOption" ng-options="option for (key, value) in options"></select> 

的JavaScript:

$scope.options = { 
    'select': -1, 
    'one': 1, 
    'two': 2, 
    'three': 3, 
    'four': 4, 
    'five': 5, 
    'six': 6 
    }; 

$scope.selectedOption = $scope.options[0]; 
+0

問題在於選項更改,我已經通過整理我的控制器/工廠中的所有對象的努力。我只想重複使用我已有的信息,並在選擇下拉列表中額外輸入

0

這是一個有點反直覺的,你需要模型有一個值,但不希望它在數據結構中定義它。

對於您可以將元素添加到您的數據陣列的使用unshift

$scope.survey.questions.unshift({sequence: -1, questionHeading: 'Finish'}); 
$scope.question.defaultGoToQuestion = $scope.survey.questions[0]; 
+0

以前有人提過這個方法,但似乎他們已經刪除了他們的答案。看來這可能是這樣的方式。我唯一的問題是這些問題顯示在頁面中,並向數組添加問題也意味着它將可見,除非我明確指出它不是。我認爲這不是我頭腦中理想的方式,但可能會讓事情過於簡單化。我奇怪的是,「默認」選項可以覆蓋角度的方式,但它必須有一個空值。 –

+1

如果您希望角度選擇佔位符的默認行爲(即選項在用戶選擇值後消失),您是否考慮僅在要提交時設置-1? – Icycool

+0

我認爲你是對的錢,我認爲這將是現在的解決方案。提交時,如果值爲空,我會將其更改爲-1。 –