我希望你們在你的生活中做得很好。我正在嘗試創建一個具有默認選擇的選擇框,並允許用戶在需要時更改選擇。AngularJS沒有在選擇框中選擇用戶選擇
這裏是的jsfiddle:https://jsfiddle.net/ibnyusrat/jf5gggj0/
我使用這行寫的選擇框及其選項:
<select name="defaultQuality" ng-model="CreatePlayer.form.defaultQuality" ng-options="item.quality as item.label for item in CreatePlayer.getQualities() track by item.quality">
<option style="display:none" value="">Select a quality</option>
</select>
和產生的選項的功能是:
CreatePlayer.getQualities = function(){
var c = Array();
c[0] = {quality:"SD",label:"SD"};
if(CreatePlayer.form.p1080){
c[1]={quality:"HD",label:"HD"}
}
return c;
}
如果我刪除此行:
CreatePlayer.form.defaultQuality = {quality:"SD",label:"SD"};
它似乎工作。問題是,如果我沒有定義默認選項,則選擇按照它應該的方式工作。但是現在我定義一個默認選項,然後以編程方式向列表中添加一個選項,更改選擇會導致選擇框恢復爲第一次的空值,但在以下所有時間都可以工作。所以用戶實際上必須選擇兩次才能識別它。
我在這裏犯了一個非常明顯的錯誤嗎?請幫忙。
只需刪除'track by item.quality',你應該沒問題 –
@AlonEitan因爲它可以在JSFiddle上測試,所以通過選項刪除軌道導致沒有默認選擇,這就是我已經寫過的腳本似乎沒有默認選項工作。 –
那麼這樣的事情也許呢? https://jsfiddle.net/jf5gggj0/1/ –