借用 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回调中去完成 不就是了?