<select ng-model="team.captain" ng-options="player.name for player in team.players"></select>
这正确地创建了一个选择列表来选择队长。但是,默认情况下会选择一个空白选项。我们如何才能从列表中预选第一个玩家?
<select ng-model="team.captain" ng-options="player.name for player in team.players" class="ng-pristine ng-valid">
<option value="0">John</option>
<option value="1">Bobby</option>
</select>
我尝试添加 ng-init="team.captain='0'"
但没有帮助。
更新 显然这是因为
a value referenced by ng-model doesn't exist in a set of options passed to ng-options.
来源:Why does AngularJS include an empty option in select?
但是,问题仍然是为什么使用 ng-init 不起作用?
<select ng-init="team.captain='0'" ng-model="team.captain" ng-options="player.name for player in team.players"></select>
最佳答案
这是有效的:
<select ng-init="team.captain=team.players[0]"
ng-model="team.captain"
ng-options="player.name for player in team.players"></select>
什么不起作用:
ng-init="team.captain='0'"
ng-init="team.captain='John'"
我的猜测是 Angular 超越了值或标签的简单比较。它可能比较对象引用。
关于javascript - 如何对 AngularJS 生成的选择列表进行预选?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14297560/