ng-model と ng-selected で問題が発生しました。最初は ng-model は null で、正しい値が選択されています。したがって、フォームを送信すると:
{ resolution : undefined, desiredFps : 30 }
そして、それは間違っています。
そのため、属性<select>
に基づいて選択された値を取得するモデルが必要です。ng-selected
選択した値を更新し、その値でモデルを更新する正しい方法は何ですか?
<form novalidate name="preferencesForm"
ng-submit="submitPreferencesForm(BEPreferencesForm)"
ng-controller="UserPreferencesFormController">
<label for="resolution">Choose the resolution : </label>
<br/>
<select name="resolution" id="resolution"
ng-model="BEPreferencesForm.resolutionId"
ng-change="buttonDisabled = False">
<option value="1" ng-selected="user.screenWidth == 800 && user.screenHeight == 600">800x600</option>
<option value="2" ng-selected="user.screenWidth == 1024 && user.screenHeight == 768">1024x768</option>
<option value="3" ng-selected="user.screenWidth == 1280 && user.screenHeight == 720">1280x720</option>
<option value="4" ng-selected="user.screenWidth == 1280 && user.screenHeight == 768">1280x768</option>
<option value="5" ng-selected="user.screenWidth == 1360 && user.screenHeight == 768">1360x768</option>
<option value="6" ng-selected="user.screenWidth == 1600 && user.screenHeight == 900">1600x900</option>
<option value="7" ng-selected="user.screenWidth == 1768 && user.screenHeight == 992">1768x992</option>
<option value="8" ng-selected="user.screenWidth == 1920 && user.screenHeight == 1080">1920x1080</option>
</select>
</form>