2016-08-08 3 views
0

Я пытаюсь создать новый объект, который будет иметь некоторые значения по умолчанию из области.Как скопировать объект и создать новый объект с существующим объектом Json?

Я нашел функцию копирования для создания нового независимого объекта.

angular.copy(source,destication)

Но это не работает для меня. Я получаю undefined, когда я консоль нового объекта.

angular.copy($rootScope.answers,$rootScope.default); 
console.log($rootScope.answers); 
console.log($rootScope.default); 

https://plnkr.co/edit/BFGXr7LNAe0KvQipj9JJ?p=preview

В app.js в .run метод, который я пытаюсь использовать функцию копирования. Пожалуйста, дайте мне знать, если мне что-то не хватает.

+1

'Object.assign ({}, источник)' – Tushar

+0

См: HTTPS://docs.angularjs.org/api/ng/function/angular.copy –

ответ

2

Клонирование является вариантом. Ниже приведен пример:

var deepClonedCopy = jQuery.extend(true, {}, originalData); 
var clonedData; 
clonedData= $.map(deepClonedCopy, function(el) { return el }); 

Смотрите эту статью, чтобы получить подробное объяснение: добавлено http://heyjavascript.com/4-creative-ways-to-clone-objects/

Дополнительный ответ:

Вам нужно определить $rootScope.default={}; перед выполнением копирования.

$rootScope.default={}; 
angular.copy($rootScope.answers,$rootScope.default); 
console.log($rootScope.answers); 
console.log($rootScope.default); 

Смотрите обновленный plnkr: https://plnkr.co/edit/hef6uSHyFRoxs33kRAS8?p=preview

В качестве альтернативы вы можете сделать, как это тоже:

$rootScope.default = angular.copy($rootScope.answers); 
+0

Есть много способов сделать это, я пытаюсь добиться этого в угловых js. почему функция angular.copy не работает для меня. –

Смежные вопросы