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