एंगुलर.कॉपी का उपयोग करते समय, संदर्भ को अपडेट करने के बजाय, एक नई वस्तु बनाई जाती है और उसे गंतव्य को सौंपा जाता है (यदि कोई गंतव्य प्रदान किया जाता है)। लेकिन वहाँ अधिक है। यह अच्छी बात है कि एक गहरी नकल के बाद होता है।
मान लें कि आपके पास एक फ़ैक्टरी सेवा है जिसमें विधियाँ हैं जो फ़ैक्टरी चर को अद्यतन करती हैं।
angular.module('test').factory('TestService', [function () {
var o = {
shallow: [0,1], // initial value(for demonstration)
deep: [0,2] // initial value(for demonstration)
};
o.shallowCopy = function () {
o.shallow = [1,2,3]
}
o.deepCopy = function () {
angular.copy([4,5,6], o.deep);
}
return o;
}]);
और एक नियंत्रक जो इस सेवा का उपयोग करता है,
angular.module('test').controller('Ctrl', ['TestService', function (TestService) {
var shallow = TestService.shallow;
var deep = TestService.deep;
console.log('****Printing initial values');
console.log(shallow);
console.log(deep);
TestService.shallowCopy();
TestService.deepCopy();
console.log('****Printing values after service method execution');
console.log(shallow);
console.log(deep);
console.log('****Printing service variables directly');
console.log(TestService.shallow);
console.log(TestService.deep);
}]);
जब उपरोक्त कार्यक्रम चलाया जाता है तो आउटपुट निम्नानुसार होगा,
****Printing initial values
[0,1]
[0,2]
****Printing values after service method execution
[0,1]
[4,5,6]
****Printing service variables directly
[1,2,3]
[4,5,6]
इस प्रकार कोणीय प्रतिलिपि का उपयोग करने के बारे में अच्छी बात यह है कि, गंतव्य के संदर्भों को मूल्यों के परिवर्तन के साथ परिलक्षित किया जाता है, बिना मानों को मैन्युअल रूप से पुन: असाइन करने के लिए।