如何使angular.js在延迟一段时间后显示数据对象更新的更新

时间:2014-09-01 13:04:49

标签: angularjs

我正在通过从http服务加载对象来初始化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

如何进行更新

1 个答案:

答案 0 :(得分:0)

您是否尝试过使用$timeout代替setTimeout()

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