Javascript angular.copy无法复制对象
我正在使用angular创建画布对象的深度副本,并且我得到了Javascript angular.copy无法复制对象,javascript,angularjs,canvas,Javascript,Angularjs,Canvas,我正在使用angular创建画布对象的深度副本,并且我得到了未捕获的InvalidStateError:未能从“HTMLInputElement”读取“selectionDirection”属性:输入元素的类型(“复选框”)不支持选择。 canvas = document.getElementById('workercanvas') canvas.width = cfg.labelsImage.width canvas.height = cfg.labelsImage.height ctx =
未捕获的InvalidStateError:未能从“HTMLInputElement”读取“selectionDirection”属性:输入元素的类型(“复选框”)不支持选择。
canvas = document.getElementById('workercanvas')
canvas.width = cfg.labelsImage.width
canvas.height = cfg.labelsImage.height
ctx = canvas.getContext('2d')
clonedCanvas = null
if clonedCanvas is null
clonedCanvas = angular.copy(canvas)
有什么想法吗?angular.copy是否可以复制DOM元素
更新:使用angular.element.clone
我尝试使用angular.element.clone,问题是它似乎无法生成深度复制,我有以下几点:
imgObj = new Image(imgWidth, imgHeight)
imgObj.onload = ->
ctx.drawImage(imgObj, 0, 0, imgWidth, imgHeight)
if clonedCanvas is null
clonedCanvas = angular.element.clone(canvas)
clonedImg = angular.element.clone(imgObj)
clonedCanvasContext = clonedCanvas.getContext('2d')
clonedCanvasContext.drawImage(clonedImg, 0, 0, imgWidth, imgHeight)
当我更改imgObj时,这也会影响clonedImg并更改clonedCanvas,我希望以某种方式保留原始信息。Is
angular.element.clone
制作深度复制?用于克隆DOM元素--它是angular的版本。可以angular.copy复制DOM元素吗?
。否。@dfsq是否有任何建议的解决方案?请使用您需要克隆的DOM节点,而不是简单的JS对象。请参阅以上@Blazemonger@Blazemonger thx的评论!这很好。这可能不会复制画布的内容,只复制元素。虽然它复制了元素,正如我所看到的,这不是深度复制,而是更多的引用。这是一个。你通常会用它做深度复制