如何避免在angularjs中选择空的自动选项

How to avoid empty automatic option in an angularjs select?

本文关键字:选项 选择 何避免 angularjs      更新时间:2023-09-26
<form ng-show="editingUser" class="form-inline editingUser" role="form" name="gebruikerdetailform" novalidate>
<input type="text" class="form-control" ng-model="userDetail.name" placeholder="Naam" ng-required="true"/>
<input type="text" class="form-control" ng-model="userDetail.surname" placeholder="Surname"/>
<select class="form-control" ng-model="userDetail.role">
    <option ng-selected="userDetail.role === 'user' || userDetail.role === ''" >user</option>
    <option ng-selected="userDetail.role === 'admin'">admin</option>
</select>
</form>

中的空选项<option value="? string: ?"></option>是由angularjs自动创建的。我知道当ng-model引用的值在ng-options中不存在时,会发生这种情况。但事实并非如此,我不明白如何避免这种行为,以及它从何而来。什么好主意吗?

如果问题涉及ng-model的初始化,则可以使用指令ng-init,如下所示:

<form ng-show="editingUser" class="form-inline editingUser" role="form" name="gebruikerdetailform" novalidate>
  <input type="text" class="form-control" ng-model="userDetail.name" placeholder="Naam" ng-required="true"/>
  <input type="text" class="form-control" ng-model="userDetail.surname" placeholder="Surname"/>
  <select class="form-control" ng-model="userDetail.role" ng-init="user">
    <option ng-selected="userDetail.role === 'user' || userDetail.role === ''" >user</option>
    <option ng-selected="userDetail.role === 'admin'">admin</option>
  </select>
</form>

查看select定义中ng-init指令的用法。

更多信息:https://docs.angularjs.org/api/ng/directive/ngInit

欢呼