给select绑定ng-model时,经常会出现首选第一个option值是undefined。如图,
源代码
<select ng-model="newSupplier.companytype">
<option value="A">A类货源供应商</option>
<option value="B" ng-selected="newSupplier.companytype=='B'">B类货源供应商</option>
</select>
主要原因是:ng-model绑定的值“newSupplier.companytype”没有初始值。浏览器自动解析为undefined。
浏览器解析代码:
<select ng-model="newSupplier.companytype" class="ng-pristine ng-valid">
<option value="? undefined:undefined ?"></option>
<option value="A">A类货源供应商</option>
<option value="B" ng-selected="newSupplier.companytype=='B'">B类货源供应商</option>
</select>
解决办法:
只要在js文件中,初始化ng-model所绑定的值即可。
$scope.newSupplier.companytype='B';
另外,ng-selected可以帮助自动指定默认选中项。
关于ng-selected和ng-option以及ng-repeat,待补充。