select 从服务器 angularjs 读取列表时不会显示默认值
select won't show default value when list is read from server angularjs
我下面有这个 select 当在 IE9 中通过 http 调用从服务器读取状态列表时,它不会显示默认值。如果在控制器本身中设置状态列表值,则默认值显示正常。
<select id="status" class="form-control" ng-init="selectedStatus = statuslist[0]"
ng-model="selectedStatus"
ng-options="status for status in statuslist">
</select>
如果我这样做,默认值会显示在下拉列表中
$scope.statuslist = [
"New",
"Management Review"
]
但如果状态列表来自服务器则不是。如果我单击下拉列表但不是默认值,我可以看到列表。
有人可以指出我在这里明显遗漏的地方吗?
ng-init
不应该在那里使用,因为它会在 html 被渲染时被评估,而那时 statuslist
值没有被加载到 $scope
, 所以它将设置为 selectedStatus
as undefined
最好在 statuslist
从服务器加载后立即添加此行 $scope.selectedStatus = $scope.statuslist[0]
。
我下面有这个 select 当在 IE9 中通过 http 调用从服务器读取状态列表时,它不会显示默认值。如果在控制器本身中设置状态列表值,则默认值显示正常。
<select id="status" class="form-control" ng-init="selectedStatus = statuslist[0]"
ng-model="selectedStatus"
ng-options="status for status in statuslist">
</select>
如果我这样做,默认值会显示在下拉列表中
$scope.statuslist = [
"New",
"Management Review"
]
但如果状态列表来自服务器则不是。如果我单击下拉列表但不是默认值,我可以看到列表。
有人可以指出我在这里明显遗漏的地方吗?
ng-init
不应该在那里使用,因为它会在 html 被渲染时被评估,而那时 statuslist
值没有被加载到 $scope
, 所以它将设置为 selectedStatus
as undefined
最好在 statuslist
从服务器加载后立即添加此行 $scope.selectedStatus = $scope.statuslist[0]
。