如何将 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
我正在拉入一组对象作为 $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