Creates a deep copy of source
.
If source
is an object or an array, all of its members will be copied into the destination
object.
If destination
is not provided and source
is an object or an array, a copy is created &
returned, otherwise the source
is returned.
If destination
is provided, all of its properties will be deleted.
Note: this function is used to augment the Object type in angular expressions. See
angular.Object
for more info.
angular.Object.copy(source[, destination]);
source – {*} –
The source to be used to make a copy.
Can be any type including primitives, null
and undefined
.
destination(optional) – {(Object|Array)} –
Optional destination into which the source is copied. If
provided, must be of the same type as source
.
{*}
– The copy or updated destination
if destination
was specified.
Salutation: <input type="text" name="master.salutation" value="Hello" /><br/> Name: <input type="text" name="master.name" value="world"/><br/> <button ng:click="form = master.$copy()">copy</button> <hr/> The master object is <span ng:hide="master.$equals(form)">NOT</span> equal to the form object. <pre>master={{master}}</pre> <pre>form={{form}}</pre>
it('should print that initialy the form object is NOT equal to master', function() { expect(element('.doc-example-live input[name=master.salutation]').val()).toBe('Hello'); expect(element('.doc-example-live input[name=master.name]').val()).toBe('world'); expect(element('.doc-example-live span').css('display')).toBe('inline'); }); it('should make form and master equal when the copy button is clicked', function() { element('.doc-example-live button').click(); expect(element('.doc-example-live span').css('display')).toBe('none'); });