Angular中angular.copy的替代方法是什么?

如何复制对象并在Angular中失去其参考?

使用AngularJS,我可以使用angular.copy(object) ,但是我在Angular中使用这个错误。

EXCEPTION:ReferenceError:未定义angular


假设你使用ES6,你可以使用var copy = Object.assign({}, original) 。 适用于现代浏览器; 如果您需要支持旧版浏览器,请查看此polyfill

更新:

使用TypeScript 2.1+,可以使用ES6速记对象传播表示法:

const copy = { ...original }

直到我们有更好的解决方案,您可以使用以下内容:

duplicateObject = <YourObjType> JSON.parse(JSON.stringify(originalObject));

编辑:澄清

请注意:上述解决方案只是一个快速修复的单线程,在Angular 2处于积极开发阶段时提供。 我的希望是我们最终可能会得到相当于angular.copy() 。 因此我不想编写或导入深度克隆库。

此方法在解析日期属性时也存在问题(它将成为一个字符串)。

请不要在生产应用程序中使用此方法。 仅在您的实验项目中使用它 - 您正在为Angular 2学习的项目。


用bertandg表示使用lodash。 角度不再有这种方法的原因是,因为角1是一个独立的框架,外部库经常遇到角度执行上下文的问题。 Angular 2没有这个问题,所以使用你想要的任何库。

https://lodash.com/docs#cloneDeep

链接地址: http://www.djcxy.com/p/40679.html

上一篇: What's alternative to angular.copy in Angular

下一篇: ECMAScript5 deep copy of object and arrays