是否可以在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}}"
,但它不会改变任何内容。
答案 0 :(得分:7)
您可以使用angular.copy深层复制对象
$scope.my_object_backup = {};
angular.copy($scope.my_object, $scope.my_object_backup);
你所做的$scope.my_object_backup = $scope.my_object
是做引用分配,所以它们实际指向了同一个对象。因此,如果您通过一个引用进行修改,您将通过另一个引用访问修改后的对象。