当前位置:AngularJS API / ng / 函数(function) / angular.copy

ng

描述

复制一个对象或者一个数组(好吧,万物皆对象,数组也是一个对象)。

如果省略了destination,一个新的对象或数组将会被创建出来;

如果提供了destination,则source对象中的所有元素和属性都会被复制到destination中;

如果source不是对象或数组(例如是null或undefined), 则返回source;

如果source和destination类型不一致,则会抛出异常。

注意:这个是单纯复制覆盖,不是类似继承


使用方法

angular.copy(source, [destination]);


参数

参数名称 参数类型 描述
source * 被copy的对象. 可以使任意类型, 包括null和undefined.
destination (optional) Object||array copy去的目的地. 可以省略, 如果不省略, 其必须和source是同类

返回值

返回复制或更新后的对象


AngularJS 实例

<body ng-app="copyExample">
        <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" />(输入email格式)<br />
            Gender: <input type="radio" ng-model="user.gender" value="male" />male
			<input type="radio" ng-model="user.gender" value="female" />female<br />
			<button ng-click="reset()">RESET</button>
			<button ng-click="update(user)">SAVE</button>
        </form>
<pre>form = {{user | json}}</pre>
<pre>master = {{master | json}}</pre>

<script src="../angular-1.3.0.14/angular.js"></script>
<script type="text/javascript">
angular.module('copyExample', [])
.controller('ExampleController', ['$scope', function ($scope) {
$scope.master = {};
$scope.update = function (user) {
// Example with 1 argument
$scope.master = angular.copy(user);
};
$scope.reset = function () {
// Example with 2 arguments
angular.copy($scope.master, $scope.user);
};
$scope.reset();
}]);
</script>

尝试一下 >>