Arrays 如何使用Dragula';s drop函数作为事件侦听器来更新数组的顺序

Arrays 如何使用Dragula';s drop函数作为事件侦听器来更新数组的顺序,arrays,angular,drag-and-drop,event-listener,ng2-dragula,Arrays,Angular,Drag And Drop,Event Listener,Ng2 Dragula,我尝试在使用带角度的dragula拖放时更新图像数组的顺序。我已经查看了文档,但仍不清楚,并不断收到以下错误:“无法调用类型缺少调用签名的表达式。类型‘EventEmitter’没有兼容的调用签名。”在阅读文档时,有人提到了drake实例,我想知道这是否是我需要添加的内容?非常感谢您的帮助/建议 最后,我只想在drop事件上启动一个save函数(使用新的数组顺序)。这似乎是一件简单的事情,但我一直很难让drop事件正常工作 import { Component, OnInit, OnDestro

我尝试在使用带角度的dragula拖放时更新图像数组的顺序。我已经查看了文档,但仍不清楚,并不断收到以下错误:“无法调用类型缺少调用签名的表达式。类型‘EventEmitter’没有兼容的调用签名。”在阅读文档时,有人提到了
drake
实例,我想知道这是否是我需要添加的内容?非常感谢您的帮助/建议

最后,我只想在drop事件上启动一个save函数(使用新的数组顺序)。这似乎是一件简单的事情,但我一直很难让drop事件正常工作

import { Component, OnInit, OnDestroy } from 
'@angular/core';
import { DragulaService } from 'ng2-dragula';
import { Subscription } from 'rxjs';

@Component({
selector: 'app-images',
templateUrl: './images.component.html',
styleUrls: ['./images.component.scss']
  })

export class ImagesComponent implements OnInit, OnDestroy {
subs = new Subscription();

constructor(
    private notifyService: NotifyService,
    private propertiesService: PropertiesService,
    private dragulaService: DragulaService
  ) { }
ngOnInit() {
this.subs.add(this.dragulaService.drop('images')
        .subscribe(({ name, el, target, source, sibling }) => {
            // fire a save function to update new array order
        })
    );
  }
ngOnDestroy() {
    // destroy all the subscriptions at once
    this.subs.unsubscribe();
  }
}

我认为德雷克是最简单的方法,但我认为你做得不对。下面是一个简单的例子:

首先,您应该创建一个组,因此请在构造函数中添加:

this.dragulaService.createGroup('IMAGES', {});
在下一步中,请将此组添加到您的HTML元素容器(项目的父级)中。在本例中:

<div class="images-container" dragula="IMAGES">
   <img src="a.png">
   <img src="b.png">
</div>

这应该行得通。如果您有任何问题,请为此创建StackBlitz演示-我将对此进行查看。

我认为
drake
是一种简单的方法,但我认为您的做法是错误的。下面是一个简单的例子:

首先,您应该创建一个组,因此请在构造函数中添加:

this.dragulaService.createGroup('IMAGES', {});
在下一步中,请将此组添加到您的HTML元素容器(项目的父级)中。在本例中:

<div class="images-container" dragula="IMAGES">
   <img src="a.png">
   <img src="b.png">
</div>

这应该行得通。如果您有任何问题,请为此创建StackBlitz演示-我将对此进行查看。

构造函数的意思是ngOnInit()?是的,这不起作用。我得到了与以前相同的错误,它没有将.createGroup()识别为DragularService的属性。我想知道我的进口是否有遗漏?它似乎也不认识“.drop”。我想我已经解决了这个问题。哈哈,我需要更新我的dragula>版本。通过构造函数,你是说ngOnInit()?是的,这不起作用。我得到了与以前相同的错误,它没有将.createGroup()识别为DragularService的属性。我想知道我的进口是否有遗漏?它似乎也不认识“.drop”。我想我已经解决了这个问题。哈哈,我需要更新我的dragula>版本。