Javascript 具有对象数组的ngOptions不设置第一个值
我有一个具有以下格式的对象数组:Javascript 具有对象数组的ngOptions不设置第一个值,javascript,angularjs,ng-options,angularjs-ng-options,Javascript,Angularjs,Ng Options,Angularjs Ng Options,我有一个具有以下格式的对象数组: [ {key: 'SC', name: 'Santa Catarina'}, {key: 'SP', name: 'São Paulo'}, {key: 'RJ', name: 'Rio de Janeiro'} ] 我想使用select和ng选项来显示这些值: <select ng-model="vm.state" ng-options="state.name for state in vm.states"> </sel
[
{key: 'SC', name: 'Santa Catarina'},
{key: 'SP', name: 'São Paulo'},
{key: 'RJ', name: 'Rio de Janeiro'}
]
我想使用select和ng选项来显示这些值:
<select ng-model="vm.state"
ng-options="state.name for state in vm.states">
</select>
但是,如果vm.state已经有一个值,则select不会以选中该值开始。有人知道如何做到这一点吗
谢谢 必须自己设置,比如
$scope.states=[...]
$scope.state=$scope.states[0]
必须自己设置,比如
$scope.states=[...]
$scope.state=$scope.states[0]
首先,您必须自行设置它,因为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>
首先,您必须自行设置它,因为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>
在本例中,您可以使用TrackBy,从某个ajax调用中检索所选对象
<select ng-model="vm.state"
ng-options="state.name for state in vm.states track by state.key">
</select>
注意:如果在ng选项表达式中使用“选择为”,则“跟踪方式”将不起作用`
在本例中,您可以使用TrackBy,从某个ajax调用中检索所选对象
<select ng-model="vm.state"
ng-options="state.name for state in vm.states track by state.key">
</select>
注意:如果在ng选项表达式中使用“选择为”,则“跟踪方式”将不起作用`
该值是从服务中检索到的,如果不进行迭代,我不知道索引。这就是我试图避免的。你可以过滤你的状态,获取索引并设置索引。vm.states.filterfunctionstate,index,self{ifvalueFromService==state{vm.state=self[index];}}这个值是从一个服务中检索到的,我不迭代就不知道索引。这就是我试图避免的。你可以过滤你的状态,获取索引并设置索引。vm.states.filterfunctionstate,index,self{ifvalueFromService==state{vm.state=self[index];}}我必须迭代才能找到所需对象的索引。难道没有更好的解决方案吗?我必须迭代才能找到我想要的对象的索引。难道没有更好的解决办法吗?这正是我需要的!谢谢大家!@很高兴知道这一点。谢谢:这正是我需要的!谢谢大家!@很高兴知道这一点。谢谢: