Heim > php教程 > PHP开发 > AngularJS erweitert Nutzungsdetails und Beispielcode

AngularJS erweitert Nutzungsdetails und Beispielcode

高洛峰
Freigeben: 2016-12-06 16:24:31
Original
1522 Leute haben es durchsucht

AngularJS-Erweiterungsverwendung

angle.extend: Kopieren Sie die Eigenschaften der ersten Ebene des zweiten Parameters und nachfolgender Parameter (unabhängig davon, ob es sich um einfache Eigenschaften oder Objekte handelt) und weisen Sie sie den Eigenschaften der ersten Ebene des ersten Parameters zu . Attribut, das heißt, wenn es sich um ein Objekt handelt, verweist es auf dasselbe Objekt und gibt das erste Parameterobjekt zurück.

Beispiel 1: var r = angle.extend(b, a); Kopieren Sie das Attribut der ersten Ebene von Objekt a (ob es sich um ein einfaches Attribut oder ein Objekt handelt) und weisen Sie es dem ersten zu. Ebenenattribut des Objekts b, das heißt, wenn es sich um ein Objekt handelt, verweist es auf dasselbe Objekt und gibt das Objekt b zurück

Js-Code

var a = {
  name : 'bijian',
  address : 'shenzhen',
  family : {
    num : 6,
    amount : '80W'
  }
};
var b = {};
var r = angular.extend(b, a);
console.log('a:' + JSON.stringify(a));
console.log('b:' + JSON.stringify(b));
console.log('r:' + JSON.stringify(r));
  
b.address = 'hanzhou';
b.family.amount = '180W';
console.log('a:' + JSON.stringify(a));
console.log('b:' + JSON.stringify(b));
console.log('r:' + JSON.stringify(r));
Nach dem Login kopieren

Laufergebnisse:

Textcode

a:{"name":"bijian","address":"shenzhen","family":{"num":6,"amount":"80W"}}
b:{"name":"bijian","address":"shenzhen","family":{"num":6,"amount":"80W"}}
r:{"name":"bijian","address":"shenzhen","family":{"num":6,"amount":"80W"}}
a:{"name":"bijian","address":"shenzhen","family":{"num":6,"amount":"180W"}}
b:{"name":"bijian","address":"hanzhou","family":{"num":6,"amount":"180W"}}
r:{"name":"bijian","address":"hanzhou","family":{"num":6,"amount":"180W"}}
Nach dem Login kopieren

Beispiel 2: var r = angle .extend(b, a, z); Kopieren Sie nacheinander die Attribute der ersten Ebene der Objekte a und z (unabhängig davon, ob es sich um einfache Attribute oder Objekte handelt) den Attributen der ersten Ebene von Objekt b, das heißt, wenn es sich um ein handelt Objekt, es verweist auf dasselbe Objekt und gibt das Objekt b zurück

Js-Code

var a = {
  name : 'bijian',
  address : 'shenzhen',
  family : {
    num : 6,
    amount : '80W'
  }
};
var z = {
  family : {
    amount : '150W',
    mainSource : '经营公司'
  }
};
var b = {};
var r = angular.extend(b, a, z);
console.log('a:' + JSON.stringify(a));
console.log('b:' + JSON.stringify(b));
console.log('r:' + JSON.stringify(r));
  
b.address = 'hanzhou';
b.family.amount = '180W';
console.log('a:' + JSON.stringify(a));
console.log('b:' + JSON.stringify(b));
console.log('r:' + JSON.stringify(r));
Nach dem Login kopieren

Laufergebnis:

Textcode

a:{"name":"bijian","address":"shenzhen","family":{"num":6,"amount":"80W"}}
b:{"name":"bijian","address":"shenzhen","family":{"amount":"150W","mainSource":"经营公司"}}
r:{"name":"bijian","address":"shenzhen","family":{"amount":"150W","mainSource":"经营公司"}}
a:{"name":"bijian","address":"shenzhen","family":{"num":6,"amount":"80W"}}
b:{"name":"bijian","address":"hanzhou","family":{"amount":"180W","mainSource":"经营公司"}}
r:{"name":"bijian","address":"hanzhou","family":{"amount":"180W","mainSource":"经营公司"}}
Nach dem Login kopieren

Egal wie viele Beispiele es gibt, er ist nicht so einfach, direkt und genau wie der Quellcode. Der Quellcode von angle.extend lautet wie folgt:

Js-Code

/**
 * @ngdoc function
 * @name angular.extend
 * @function
 *
 * @description
 * Extends the destination object `dst` by copying all of the properties from the `src` object(s)
 * to `dst`. You can specify multiple `src` objects.
 *
 * @param {Object} dst Destination object.
 * @param {...Object} src Source object(s).
 * @returns {Object} Reference to `dst`.
 */
function extend(dst) {
 var h = dst.$$hashKey;
 forEach(arguments, function(obj){
  if (obj !== dst) {
   forEach(obj, function(value, key){
    dst[key] = value;
   });
  }
 });
  
 setHashKey(dst,h);
 return dst;
}
Nach dem Login kopieren


Verwandte Etiketten:
Quelle:php.cn
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
Beliebte Empfehlungen
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage