带有对象数组的ngOptions不会设置第一个值

时间:2016-08-12 18:51:44

标签: javascript angularjs ng-options angularjs-ng-options

我有一系列具有以下格式的对象:

[
  {key: 'SC', name: 'Santa Catarina'},
  {key: 'SP', name: 'São Paulo'},
  {key: 'RJ', name: 'Rio de Janeiro'}
]

我想使用selectng-options来显示这些值:

<select ng-model="vm.state"
    ng-options="state.name for state in vm.states">
</select>

但是,如果vm.state已有值,则select不会以选中它开头。有谁知道如何实现它?

Fiddle demonstrating the problem.

谢谢! :)

3 个答案:

答案 0 :(得分:2)

在这种情况下,您可以使用track by,从一些ajax调用中检索所选对象。

<select ng-model="vm.state"
      ng-options="state.name for state in vm.states track by state.key">
</select>

JSFiddle

  

注意:如果您在track by表达式中使用select as ng-options将无效。

答案 1 :(得分:1)

必须自己设置,例如

val schema: org.apache.spark.sql.types.StructType = ???
spark.read.schema(schema).json(mappedRdd)

答案 2 :(得分:1)

首先,您必须将其设置为自己,因为vm.state将从您的vm.states获取值。您可以使用ng-init进行设置。

  <select ng-model="vm.state"
        ng-options="state.name for state in vm.states" ng-init="vm.state = $scope.states[0]">
    </select>