我正在尝试创建一个具有范围默认值的新对象。
我发现有复制功能来创建新的独立对象。
angular.copy(source,destication)
但它不适合我。当我控制新对象时,我得到了未定义。
angular.copy($rootScope.answers,$rootScope.default);
console.log($rootScope.answers);
console.log($rootScope.default);
https://plnkr.co/edit/BFGXr7LNAe0KvQipj9JJ?p=preview
在.run方法的app.js中我尝试使用复制功能。 如果我遗漏了任何东西,请告诉我。
答案 0 :(得分: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);