angular.Object.copy

Description

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.

Usage

angular.Object.copy(source[, destination]);

Parameters

Returns

{*}

The copy or updated destination if destination was specified.

Example

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 input[name=master.salutation]').val()).toBe('Hello'); expect(element('.doc-example input[name=master.name]').val()).toBe('world'); expect(element('.doc-example span').css('display')).toBe('inline'); }); it('should make form and master equal when the copy button is clicked', function() { element('.doc-example button').click(); expect(element('.doc-example span').css('display')).toBe('none'); });