我正在通过从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
如何进行更新
答案 0 :(得分:0)
您是否尝试过使用$timeout
代替setTimeout()
?
$timeout(function() {
_.each($scope.catalogs, function(catalog) {
catalog.ordered = true;
});
}, 2000);