javascript - 如何对 AngularJS 生成的选择列表进行预选?

标签 javascript angularjs

<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/

相关文章:

css - Angular CSS 动画不起作用

javascript - 对 ng-repeat 内的 ng-repeat 求和

javascript - 如何在使用类型分散时将箭头添加到行尾

javascript - 循环对象数组

javascript - 将 ng-model 值设置为按钮单击

javascript - 对包装 slickgrid 的 Angular Directive(指令)进行单元测试

angularjs - ngtable的HTML页面中的 '$data'是什么

javascript - WebGL alpha 取决于与原点的距离

javascript - Math.sqrt() 返回无穷大?

javascript - Karma 测试报告运行速度很快,但实际运行速度很慢