我有一个对象,我要发送到一个web服务器中存储在数据库中。在发送它和操作完成之间,我需要稍微修改它,这样服务器就可以处理它了。
实际上,我有以下代码:
$scope.o = {...};
$scope.send = function()
{
  $scope.sanitize($scope.o);
  SomeService.Save($scope.o).then( function() {
    $scope.unsanitize($scope.o);
  });
}Sanitize只是让对象准备好发送服务器,而unsanitize将其放入视图可以更容易处理的表单中。
我遇到的问题是,在调用消毒和非消毒之间,会有几毫秒的延迟(或秒,取决于当时网络的速度)。在此期间,视图将被更新,并显示净化所做的更改。不过,我不希望在服务器执行其任务时向用户显示这些更改。
是否有一种暂时防止角度更新到特定对象的方法?
我在这里创建了一个用来说明问题的“小提琴”:http://jsfiddle.net/29ze4exp/5/
发布于 2015-03-14 04:15:15
好的!只是不要修改绑定到视图的对象。相反,请使用副本。
var copy = angular.copy($scope.o);
$scope.sanitize(copy);
SomeService.Save(copy).then(function() {https://stackoverflow.com/questions/29045366
复制相似问题