我已经查看了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();
}
任何帮助或想法可能会发生这种情况将不胜感激。
答案 0 :(得分:1)
当您使用query()
的{{1}}方法时,它会立即返回一个空数组。当服务器响应数据时,将使用服务器响应填充此空数组。使用$resource
的实例方法也会发生类似的事情。
因此,您需要在复制阵列之前等待服务器响应。该数组上有一个$resource
属性,您可以使用它来执行此操作。
$promise