\r\n \r\n 
\r\n data: 
\r\n user.data: {{user.data}} 
\r\n user1.data: {{user1.data}} 
\r\n change<\/button> 
\r\n copy<\/button> 
\r\n copyData: {{copyUser.data}}\r\n <\/div>\r\n <\/div>\r\n 

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

Heim php教程 PHP開發(fā) Verwenden Sie angle.copy, um die bidirektionale Bindung und Analyse von Variablen abzubrechen

Verwenden Sie angle.copy, um die bidirektionale Bindung und Analyse von Variablen abzubrechen

Dec 05, 2016 am 11:40 AM

Werfen wir zun?chst einen Blick auf den Beispielcode

<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>

Wie Sie in der obigen Demonstration sehen k?nnen, wird der Wert von copyData zu ?this“, wenn auf die Schaltfl?che ?Kopieren“ geklickt wird sind alte Daten“, hat den Wert von ?user“ erfolgreich nach ?copyUser“ kopiert.

Wenn auf die Schaltfl?che ??ndern“ geklickt wird, werden die Werte von ?user1“ und ?user“ zu ?wird ge?ndert“, der Wert von ?copyUser“ jedoch nicht ge?ndert. Wenn zu diesem Zeitpunkt der Wert im Eingabefeld ge?ndert wird, ?ndern sich die Werte von Benutzer und Benutzer1 entsprechend, was darauf hinweist, dass es sich bei den beiden tats?chlich um dieselbe Variablenreferenz handelt. Und copyUser hat sich nicht ge?ndert.

Das Prinzip von angle.copy, die bidirektionale Bindung aufheben zu k?nnen

Dies h?ngt mit der Tatsache zusammen, dass Objekte in JavaScript Referenztypen sind.

Werttypen in JavaScript

In JavaScript werden Werte in zwei Typen unterteilt: Grundwerte und Referenzwerte.

Primitive Werte: einfache Datenfelder, die im Stapel (Stack) gespeichert sind, dh ihre Werte werden direkt an der Stelle gespeichert, an der auf Variablen zugegriffen wird.

Referenzwerte: im gespeichert Heap (Heap), das hei?t, der in der Variablen gespeicherte Wert ist ein Zeiger, der auf den Speicher zeigt, in dem das Objekt gespeichert ist.

Objekte in JavaScript sind Referenzwerte, was bedeutet, dass Objekte Werte als Referenz übergeben.

Also im obigen Code:

Die Werte der Objekte $scope.user und $scope.user1 verweisen beide auf dieselbe Referenz. Bei Angular bedeutet die überwachung von Variablen?nderungen die überwachung der von ihrem Objekt referenzierten Adresse. Wenn sich also der Referenzwert des Objekts ?ndert, ?ndern sich alle darauf verweisenden Objekte entsprechend.

In Angular kann die bidirektionale Bindung also nicht direkt durch Objektzuweisung freigegeben werden. Die M?glichkeit, die bidirektionale Bindung aufzuheben, besteht also darin, ein neues Objekt zu erstellen und dann dem neuen Objekt den Wert des ursprünglichen Objekts zuzuweisen. Ist das nicht nur eine tiefe Kopie in JavaScript?

Ja, angle.copy ist die von Angular bereitgestellte Deep-Copy-Methode. Daher kann das über angle.copy kopierte Objekt mit dem ursprünglichen Objektwert übereinstimmen und nicht auf dieselbe Referenz wie das alte Objekt verweisen, wodurch die bidirektionale Bindung der Objektvariablen realisiert wird.


Erkl?rung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Hei?e KI -Werkzeuge

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Clothoff.io

Clothoff.io

KI-Kleiderentferner

Video Face Swap

Video Face Swap

Tauschen Sie Gesichter in jedem Video mühelos mit unserem v?llig kostenlosen KI-Gesichtstausch-Tool aus!

Hei?e Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Hei?e Themen

PHP-Tutorial
1502
276