AngularJS Form Reset / angular.copy复制空对象而不是预期的原始数据

时间:2014-07-25 22:51:53

标签: angularjs angularjs-scope

我已经查看了AngularJS的各种表单重置示例,它们或多或少最终都是相同的 - 从原始数据中执行angular.copy。

...然而

当我进行angular.copy时,它几乎就像用[]而不是预期的原始数据替换我的表单一样。

控制器的一部分:

//get my data
$scope.phones = api.phones.query();

//"save" the original state
$scope.original = $scope.phones
console.log($scope.personalphones); //result: [$promise: Object, $resolved: false]

$scope.reset() = function() {
    angular.copy($scope.original, $scope.phones);
    $scope.phones.form.$setPristine();
}

任何帮助或想法可能会发生这种情况将不胜感激。

1 个答案:

答案 0 :(得分:1)

当您使用query()的{​​{1}}方法时,它会立即返回一个空数组。当服务器响应数据时,将使用服务器响应填充此空数组。使用$resource的实例方法也会发生类似的事情。

因此,您需要在复制阵列之前等待服务器响应。该数组上有一个$resource属性,您可以使用它来执行此操作。

$promise