国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

ホームページ php教程 PHP開發(fā) angular.copy を使用して変數(shù)の雙方向バインドと解析をキャンセルする

angular.copy を使用して変數(shù)の雙方向バインドと解析をキャンセルする

Dec 05, 2016 am 11:40 AM

まずはサンプルコードを見てみましょう

<body ng-app="app">
 <div ng-controller="CopyController">
 <div>
 data: <input ng-model="user.data" /><br>
 user.data: {{user.data}} <br>
 user1.data: {{user1.data}} <br>
 <button ng-click="changeData1()">change</button> <br>
 <button ng-click="copy()">copy</button> <br>
 copyData: {{copyUser.data}}
 </div>
 </div>
 <script src="node_modules/angular/angular.min.js"></script>
</body>
<script>
 angular.module(&#39;app&#39;, [])
 .controller(&#39;CopyController&#39;, function ($scope) {
 // body...
 $scope.changeData1 = function () {
  // body...
  scope.user1=scope.user1=
scope.user;
  $scope.user1.data = &#39;is changed&#39;;
 }
 $scope.copy = function () {
  // body...
  scope.copyUser=angular.copy(scope.copyUser=angular.copy(
scope.user);
 }
 });
</script>

上記のデモからわかるように、コピーボタンをクリックするとcopyDataの値が「これは古いデータです」となり、userの値がcopyUserへのコピーに成功しました

変更ボタンをクリックするとuser1とuserの値が「変更されました」となりますが、copyUserの値は変更されません。このとき、入力ボックスで値を変更すると、それに応じてuserとuser1の値も変化し、両者が実際には同じ変數(shù)參照であることがわかります。また、copyUser は変更されていません。

angular.copy は雙方向バインディングの原則をキャンセルできます

これは、JavaScript のオブジェクトが參照型であるという事実に関連しています。

JavaScriptの値の型

JavaScriptでは、値はプリミティブ値と參照値の2種類に分けられます。

プリミティブ値: スタックに保存される?yún)g純なデータフィールド、つまり、その値は変數(shù)がアクセスされる場所に直接保存されます。

參照値: ヒープに保存されます、つまり、値変數(shù)に格納されるのは、オブジェクトが格納されているメモリ位置へのポインタです。

JavaScript のオブジェクトは參照値です。つまり、オブジェクトは參照によって値を渡します。

したがって、上記のコードでは:

オブジェクト $scope.user と $scope.user1 の値は両方とも同じ參照を指します。 Angular の場合、変數(shù)の変更を監(jiān)視することは、そのオブジェクトによって參照されるアドレスを監(jiān)視することになるため、オブジェクトの參照値が変更されると、それを指すすべてのオブジェクトもそれに応じて変更されます。

そのため、Angular では、オブジェクトの割り當(dāng)てを通じて雙方向バインディングを直接解放することはできません。したがって、雙方向バインディングをキャンセルする方法は、新しいオブジェクトを作成し、元のオブジェクトの値を新しいオブジェクトに割り當(dāng)てることです。これは JavaScript の単なるディープコピーではないでしょうか?

はい、angular.copy は Angular が提供するディープ コピー メソッドです。したがって、angular.copy を通じてコピーされたオブジェクトは、元のオブジェクトの値と一貫性を保つことができ、古いオブジェクトと同じ參照をポイントしないため、オブジェクト変數(shù)の雙方向バインディングが実現(xiàn)されます。


このウェブサイトの聲明
この記事の內(nèi)容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰屬します。このサイトは、それに相當(dāng)する法的責(zé)任を負(fù)いません。盜作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡(luò)ください。

ホットAIツール

Undress AI Tool

Undress AI Tool

脫衣畫像を無料で

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード寫真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

寫真から衣服を削除するオンライン AI ツール。

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中國語版

SublimeText3 中國語版

中國語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強(qiáng)力な PHP 統(tǒng)合開発環(huán)境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)