3

是否可以在 AngularJS 中将表单重置为其初始值?

我有一个带有 的字段的简单表单,该字段ng-model='my_object.my_value'已禁用。当我开始编辑它时,我复制$scope.my_object$scope.my_object_backup.

如果我单击取消,我会禁用该字段并设置$scope.my_object = $scope.my_object_backup. 但是我在输入中看到的值没有改变。

有没有办法解决这种行为?

我尝试设置value="{{my_object.my_value}}"但它没有改变任何东西。

4

1 回答 1

7

您可以使用angular.copy深度复制对象

$scope.my_object_backup = {};
angular.copy($scope.my_object, $scope.my_object_backup);

您所做$scope.my_object_backup = $scope.my_object的是进行引用分配,因此它们实际上指向完全相同的对象。因此,如果您通过一个引用进行修改,您将通过另一个引用访问修改后的对象。

于 2013-08-08T20:09:41.107 回答