我有一个包含来自JSON数据的状态的选择集:
<select name="ParentState" ng-model="selectedState" ng-options="s.StateID as s.StateCode for s in cStates | orderBy:'StateCode'">
<option value="">Select State...</option>
</select>
并且希望将所选状态设置为为登录用户返回的状态,但我完全确定如何在Angular中完成此操作。这是我尝试过的,但它不起作用。
angular.forEach($scope.cState, function (s) {
if (s.StateCode == xParentState) {
$scope.selectedState = s.StateCode;
}
});
xParent
是此状态缩写,例如&#39; MI&#39;为密歇根州
答案 0 :(得分:1)
ngModel
设置为StateID
(如ngOptions
- value as text for object in array
中所示) - 因此请设置{而不是StateCode
if (s.StateCode == xParentState) {
$scope.selectedState = s.StateID;
}
答案 1 :(得分:1)
查看`ngOptions的文档。
您在此处使用select as label for value in array
表达式。因此,要设置ngModel,您需要设置StateID
。
假设你有一个像这样的对象:
xParentState: {
StateID: 1,
StateCode: 'MI',
StateName: 'Michigan'
}
您可以直接使用$scope.selectedState = xParentState.StateID
设置值,也可以使用ngInit
在模板中设置(例如,当用户重新加载页面时),而不是迭代状态数组:
<select ng-model="selectedState" ng-options="s.StateID as s.StateCode for s in cStates | orderBy:'StateCode'" ng-init="selectedState = xParentState.StateID">
<option value="">Select State...</option>
</select>