AngularJS双向绑定:如何防止错误时更新模型?

AngularJS双向绑定:如何防止错误时更新模型?,angularjs,web-services,angularjs-ng-repeat,ng-repeat,Angularjs,Web Services,Angularjs Ng Repeat,Ng Repeat,我正在调用一个以JSON格式返回数据的Web服务。我将其存储到一个名为myrecipes的变量中,并通过网格中的rg repeat显示这些内容。这个很好用!我已经通过ng模型将数据库字段绑定到复选框。这也行得通。现在我的要求是: 我可以调用webservice函数,通过ng change更新数据库中的当前项。调用成功后,模型将更新,数据库中的值也将更新。一切都好 但是,当我试图通过webservice更新数据库中的值时,如果出现问题怎么办?模型(本地数据)正在更新,但数据库中的值没有更新!这可能

我正在调用一个以JSON格式返回数据的Web服务。我将其存储到一个名为myrecipes的变量中,并通过网格中的rg repeat显示这些内容。这个很好用!我已经通过ng模型将数据库字段绑定到复选框。这也行得通。现在我的要求是:

我可以调用webservice函数,通过ng change更新数据库中的当前项。调用成功后,模型将更新,数据库中的值也将更新。一切都好

但是,当我试图通过webservice更新数据库中的值时,如果出现问题怎么办?模型(本地数据)正在更新,但数据库中的值没有更新!这可能不会发生!我怎样才能防止这种情况?我怎样才能捕获通过ng更改触发的单个项,并将模型中的值设置回以前的值

问候 bog样本:

<ul>
  <li data-ng-repeat="item in items">
  <input type="checkbox" data-ng-model="item.someProperty"data-ng-click="someFunction($index)"/>{{item.description}}
  </li>
</ul>
  • {{item.description}

当用户单击复选框时,函数将被调用,并传递项的索引,这样您就可以在项数组中获取对象的索引,并且您可以使用它来做一些事情

,但是由于通过ng模型的双向绑定,模型不会在项的更改时也得到更新?对不起,我不明白,在这种情况下,当出现问题时,您可以执行新请求并仅填写项目。类似:
$http(urlRequest,{params}).success(函数(数据){items[index]=data;//数据是具有实际值的对象})我想我应该在数据库中再次查询更新的项目,这个项目应该写回本地数据?是的。或者将项目保存在另一个对象中,如果出现问题,请将“项目副本”复制到原始项目。类似:
$scope.copiedItem={properties}$scope.functionCheckbox=function(index){angular.copy($scope.items[index],$scope.copiedItem);$http.post(url,{params}).success(function(data){$scope.items[index]=data;}).error(function(){angular.copy($scope.copiedItem,$scope.items[index]);})