Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript angular.copy无法复制对象_Javascript_Angularjs_Canvas - Fatal编程技术网

Javascript angular.copy无法复制对象

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 =

我正在使用angular创建画布对象的深度副本,并且我得到了
未捕获的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的评论!这很好。这可能不会复制画布的内容,只复制元素。虽然它复制了元素,正如我所看到的,这不是深度复制,而是更多的引用。这是一个。你通常会用它做深度复制