【发布时间】:2016-05-12 02:07:57
【问题描述】:
我指的是表单发布上的这段代码,对应于简单表单上的角度文档。
angular.copy 在这里有什么用?在删除 angular.copy 的情况下,代码似乎仍然可以正常工作。
<div ng-controller="ExampleController">
<form novalidate class="simple-form">
Name: <input type="text" ng-model="user.name" /><br />
E-mail: <input type="email" ng-model="user.email" /><br />
Gender: <input type="radio" ng-model="user.gender" value="male" />male
<input type="radio" ng-model="user.gender" value="female" />female<br />
<input type="button" ng-click="reset()" value="Reset" />
<input type="submit" ng-click="update(user)" value="Save" />
</form>
<pre>user = {{user | json}}</pre>
<pre>master = {{master | json}}</pre>
</div>
<script>
angular.module('formExample', [])
.controller('ExampleController', ['$scope', function($scope) {
$scope.master = {};
$scope.update = function(user) {
$scope.master = angular.copy(user);
};
$scope.reset = function() {
$scope.user = angular.copy($scope.master);
};
$scope.reset();
}]);
</script>
【问题讨论】:
-
angular.copy 打破相同的引用,如果你不使用 angular.copy 那么 master,用户是相同的实例,虽然它的对象名称不同
-
复制一个对象以防止其他代码修改它。 (原始对象可能会更改,但您的副本不会看到更改)。请参阅What is the benefit of angular.copy? 了解更多信息。
标签: angularjs