2014-09-01 1 views
0

http 서비스에서로드 한 객체의 배열을 angular.js에서 초기화하고 있습니다. 나는 첫 번째 방법을 사용하면 I 3 초 후 업데이트를 지연하여 두 번째 방법을 사용하는 경우angular.js가 약간의 지연 후 데이터 객체 업데이트로 업데이트 표시하는 방법

<ul class="order-list" ng-repeat="catalog in catalogs"> 
       <li style="width:34%;" ng-show="{{catalog.ordered}}" ><span class="fa fa-money"></span> ORDERED </li> 
    </ul> 

    $scope.catalogs = []; 
    $http({ 
     url: baseURL + "/orders/"+order.date + "?code="+order.code, 
     method: "DELETE", 
    }).success(function (data, status, headers, config) { 
    $scope.catalogs = data; 
      // first way 
      _.each($scope.catalogs, function(catalog){ 
       console.log(catalog); 
       catalog.ordered = true; 
      }) 
      // second way 
      setTimeout(function(){ 
      console.log("settimeout"); 
      _.each($scope.catalogs, function(catalog){ 
       console.log(catalog); 
       catalog.ordered = true; 
      }) 
      $scope.$apply(); 
      }, 2000) 
    }) 

코드에서와 같이, 다음 HTML 즉시, 그러나, 업데이트를 표시합니다, 다음 HTML은 표시되지 않습니다 모든 업데이트, $ scope 사용. $ apply(); 그냥 나에게 오류의 오류를 준 : [$ rootScope : inprog] http://errors.angularjs.org/1.3.0-beta.17/ $ rootScope/inprog P0 = % 24digest

답변

0

당신이 봤어 업데이트가 $timeout 대신 setTimeout()을 사용하여 수행하는 방법?

$timeout(function() { 
    _.each($scope.catalogs, function(catalog) { 
    catalog.ordered = true; 
    }); 
}, 2000); 
+0

나는 setTimeout 또는 표준 방법 $ timeout의 문제라고 생각하지 않습니다. 최소한 setTimeout은 2 초 후에 실행됩니다. – user824624

+0

실제로 해 보셨습니까? – foxx

관련 문제