我使用ng2-dragula实现拖拽功能。 拖拽功能的应用方法如下:
<div class='container' [dragula]='"first-bag"'>
<div>item 1</div>
<div>item 2</div>
</div>
如果我正确理解 Angular 2,那么将
[dragula]='"first-bag"'
附加到我的 div 的方式被称为 Angular 2 中的 Attribute Directive。现在,我在组件中有一个名为
enableDragNDrop: boolean
的变量。如何在 enableDragNDrop == true
时将 [dragula]='"first-bag"'
附加到我的 div?如果
enableDragNDrop == false
,我希望出现以下情况:<div class='container'><!-- no dragula attribute directive, no dragndrop -->
<div>item 1</div>
<div>item 2</div>
</div>
dragulaModel = {start: function () {}};
时,允许拖放,当移动并放置项目时,会抛出以下错误:TypeError:sourceModel.splice不是一个函数
。顺便说一下,有两种方法可以解决这个问题:一种是完全防止拖放事件发生-目前我们不知道如何解决此问题。第二种方法是允许拖放事件的发生,但不保存结果,即if(enableDragNDrop) this.dragulaService.dropModel.subscribe(this.myCustomOnDropCallback.bind(this))
。 - PeterenableDragNDrop == true
时由Angular 2分配给可拖动元素。 - Peter