将表单重置为AngularJS中的初始值

Reset form to initial values in AngularJS

本文关键字:AngularJS 表单      更新时间:2023-09-26

是否可以在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}}",但它没有改变任何内容。

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

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

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