2017-06-12 70 views
0

我有这些功能在我的我的角2项目的index.html:角2拖放

<script> 
function allowDrop(ev) { 
    ev.preventDefault(); 
} 

function drag(ev) { 
    ev.dataTransfer.setData("text", "teststring"); 
} 

function drop(ev) { 
    ev.preventDefault(); 
    var data = ev.dataTransfer.getData("text"); 
    console.log(data); 
} 
</script> 

当我把功能在我的组件,它提供了以下错误:

Uncaught ReferenceError: drag is not defined at HTMLImageElement.ondragstart 
Uncaught ReferenceError: allowDrop is not defined at HTMLDivElement.ondragover 

使用功能的元件是在组件的HTML:

<div> ondrop="drop(event)" ondragover="allowDrop(event)"> 
    <img> src="smiley.png" draggable="true" ondragstart="drag(event)"> 
</div> 

<div ondrop="drop(event)" ondragover="allowDrop(event)"> 
</div> 

回答

0

如果你要使用拖放frenquently下降,我建议你这个库:https://www.npmjs.com/package/ng2-dnd

+0

工作谢谢,我会看看它。看起来角2没有实际的拖放功能。另外安装npm包是有点棘手的角度。但我会试一试 –

0

你为什么index.html文件中定义?

如果使用组件html中的任何函数,则需要在component.ts文件中定义这些函数。

所以移动这些功能到组件类

+0

因为他们只能在index.html中工作。他们不在component.ts –

0

有没有需要移动你的代码的index.html,只是这样做:

变化

ondrop, ondragover, ondragstart, event 

(drop), (dragover), (dragstart), $event 

分别在您的模板(HTML)。