首页 > angularjs 关于异步获取的 ng-options 无法和 ng-model 上的值默认选中的问题

angularjs 关于异步获取的 ng-options 无法和 ng-model 上的值默认选中的问题

借用 buzz 之前的回答举例的代码
<select ng-model="selected" ng-options="x.id as x.name for x in users"></select>

$scope.users = [
    {name:'a',id:'1'},
    {name:'b',id:'2'},
    {name:'c',id:'3'}
];
$scope.selected='2';//id的值,区分类型
$scope.selected=$scope.users[0].id;//如果想要第一个值

我的问题:
获取$scope.users 还在请求的异步队列中,这样 $scope.selected='2'; 然而并不能找到 $scope.users = [ ]; 中的对象。

$apply $digest 这些也是然并卵 比如 httprequest(function (data) { $scope.users = data; $scope.$apply }) // 恭喜 报错重复触发 Error: [$rootScope:inprog] $digest already in progress

目前想到的是用setTimeout 来触发 select ng-change 来更新 ng-option 的默认选择问题
这有有其他的问题 应为 ng-change 可能不是用来准备初始化而是准备 做其他业务操作的

回复楼下那位兄弟的


select添加一个默认项呢?比如:请选择blabla


遇到同样问题,不过我的是如果 值 是中文的话才会出现这个问题...如果是数字获取或英文字母即使是异步也没问题...


相似问题 在controll里给select的modal赋值 并不能改变modal的值


$http.post(url,data)
.success(function(data,status){
$scope.user = data;
$scope.selected = $scope.user[0].id;
}).then(function(){
//ToDo code....
})
你把设置的代码放到 success回调中去完成 不就是了?

【热门文章】
【热门文章】