如何将 ng-option 模型设置为对象的值?

How do I set ng-option model to the value of an object?

我正在拉入一组对象作为 $scope.templates。我希望能够为我的 ng-options 数组中的 selected 选项将 $scope.item.steps(我的 select 模型名称)设置为 template.steps 的值。有没有无需添加额外控制器逻辑的简单方法?

<select class="form-control" ng-options="template.name for template in templates" ng-model="item.steps">

当然,使用 select as label for value in array 语法:

<select class="form-control" ng-options="template.steps as template.name for template in templates" ng-model="item.steps">

Beyers 回答得当场。只有一个建议是使用 track by

<select class="form-control" ng-options="template.steps as template.name for template in templates track by template.id" ng-model="item.steps">  

不需要成为template.id,但您应该跟踪一些唯一标识符。这有助于解决许多 performance/rendering 问题。

绝对必要,如果:

  • 您将在此输入
  • 之外更新 item.step
  • 您有一个动态选项集合(在本例中 templates

相关:ng-repeat , ng-options