ng-init无法正常工作
下面是我的html,其中包含div中的select字段。
<div class="form-group">
<div class="col-lg-4">
<select name="trader" class="form-control" id="select" ng-model="$root.customerDetails.traderType"
ng-init="$ctrl.initi()" ng-options="traderTypeObj.description for traderTypeObj in traderTypes
track by traderTypeObj.type" >
</select>
</div>
现在我需要在select字段中显示第一个选项,我从服务中获取它。所以我使用ng-init.But它不工作。所以我试图从ng-init调用一个函数。< / p>
如果我设置此$rootScope.customerDetails.traderType=$scope.traderTypes[1];
,默认情况下会显示第一个选项。我通过按下按钮并设置onclick及其工作来测试这个。现在我尝试使用ng-init调用该功能并使用$范围。$申请()
this.initi=function(){
$rootScope.customerDetails.traderType = $scope.traderTypes[1];
$scope.$apply();
};
第一次加载时将html视为错误,第二次加载Error: [$rootScope:inprog] $digest already in progress
问题是Iam在调用ajax服务之前调用该值...
如何设置该选项..可以有人帮助我
答案 0 :(得分:1)
试试这个,
this.initi=function(){
$timeout(function() {
$rootScope.customerDetails.traderType = $scope.traderTypes[1];
$scope.$apply();
})
};
答案 1 :(得分:0)
试试这个html
<div class="form-group" ng-init="init()">
<div class="col-lg-4">
<select name="trader" class="form-control" id="select" ng-model="cus_traderType" ng-options="traderTypeObj.description for traderTypeObj in traderTypes
track by traderTypeObj.type" >
</select>
</div>
app.js代码
请设置$ scope.cus_traderType您的主控制器
像这样
$scope.cus_traderType = '';
$scope.init=function(){
$scope.cus_traderType = $scope.traderTypes[1];
};