面对动态数据的ng-init问题

时间:2016-11-28 06:31:04

标签: javascript html angularjs node.js meteor

带有动态数据的

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服务之前调用该值...

如何设置该选项..可以有人帮助我

2 个答案:

答案 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];

 };