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

时间:2013-08-08 20:00:41

标签: javascript angularjs

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

1 个答案:

答案 0 :(得分:7)

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

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

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