fix(copy) Collections are now copied/cloned properly · mgonto/restangular@c92b138

Original file line numberDiff line numberDiff line change

@@ -996,10 +996,31 @@

996996

elem[config.restangularFields.doGETLIST] = elem[config.restangularFields.customGETLIST];

997997

}

998998
999-

function copyRestangularizedElement(fromElement, toElement) {

1000-

var copiedElement = angular.copy(fromElement, toElement);

1001-

return restangularizeElem(fromElement[config.restangularFields.parentResource],

1002-

copiedElement, fromElement[config.restangularFields.route], fromElement[config.restangularFields.fromServer]);

999+

function copyRestangularizedElement(element) {

1000+

var copiedElement = angular.copy(element);

1001+
1002+

// check if we're dealing with a collection (i.e. an array)

1003+

// and restangularize the element using the proper restangularizer,

1004+

// element / collection

1005+

if (_.isArray(element)) {

1006+

return restangularizeCollection(

1007+

element[config.restangularFields.parentResource],

1008+

copiedElement,

1009+

element[config.restangularFields.route],

1010+

element[config.restangularFields.fromServer],

1011+

element[config.restangularFields.reqParams]

1012+

);

1013+

}

1014+
1015+

// not a collection, restangularize it as an element

1016+

return restangularizeElem(

1017+

element[config.restangularFields.parentResource],

1018+

copiedElement,

1019+

element[config.restangularFields.route],

1020+

element[config.restangularFields.fromServer],

1021+

element[config.restangularFields.restangularCollection],

1022+

element[config.restangularFields.reqParams]

1023+

);

10031024

}

10041025
10051026

function restangularizeElem(parent, element, route, fromServer, collection, reqParams) {