angular.copy

angular.copy(source[, destination])

オブジェクトまたは配列から、ディープコピーを行います。 対象はオブジェクト、または配列にすべきです。

  • もし、destinationが提供されなければ、オブジェクトまたは配列のコピーが作成されます。
  • もし、destinationが提供されれば、その項目(配列ならば)またはプロパティ(オブジェクトならば)は全て削除され、 全ての項目/プロパティがsourceからコピーされます。
  • もし、sourceがオブジェクトでも配列でも無ければ(nullとundefinedも含む)、sourceがそのまま返されます。
  • もし、sourceと'destination'が同一のものであれば、例外がスローされます。
引数 説明
source

型:*

コピー元を指定します。 指定する型は、プリミティブ、null、undefinedでも可能です。

destination(optional)

型:ObjectArray

コピー先を指定します。 もし、指定するのであれば、sourceと同じ型にしなければいけません。

戻り値 説明
 

型:*

コピー、または、destinationが指定されていれば、更新されたdestinationが返ります。

デモ

<!doctype html>
<html ng-app>
  <head>
    <script src="http://code.angularjs.org/1.2.0-rc.3/angular.min.js"></script>
    <script src="script.js"></script>
  </head>
  <body>
    <div ng-controller="Controller">
    <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 />
    <button ng-click="reset()">RESET</button>
    <button ng-click="update(user)">SAVE</button>
    </form>
    <pre>form = {{user | json}}</pre>
    <pre>master = {{master | json}}</pre>
    </div>
  </body>
</html>
function Controller($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();
 }
<!doctype html>
<html ng-app>
  <head>
    <script src="http://code.angularjs.org/1.2.0-rc.3/angular.min.js"></script>
<script>function Controller($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>
  </head>
  <body>
    <div ng-controller="Controller">
    <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 />
    <button ng-click="reset()">RESET</button>
    <button ng-click="update(user)">SAVE</button>
    </form>
    <pre>form = {{user | json}}</pre>
    <pre>master = {{master | json}}</pre>
    </div>
  </body>
</html>

 Back to top

© 2017 Google
Licensed under the Creative Commons Attribution License 3.0.

このページは、ページトップのリンク先のAngularJS公式ドキュメント内のページを翻訳した内容を基に構成されています。 下記の項目を確認し、必要に応じて公式のドキュメントをご確認ください。 もし、誤訳などの間違いを見つけましたら、 @tomofまで教えていただければ幸いです。

  • AngularJSの更新頻度が高いため、元のコンテンツと比べてドキュメントの情報が古くなっている可能性があります。
  • "訳注:"などの断わりを入れた上で、日本人向けの情報やより分かり易くするための追記を行っている事があります。