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]