0

我见过这个,但它在我的代码中不起作用。我Dragula在我的Angular2应用程序中使用Typescript.

我需要获取被拖动元素的元素的 id。这是打字稿类的一部分:

 constructor(private dragulaService: DragulaService) {

    dragulaService.drop.subscribe((value) => {
       this.onDrop(value.slice(1));
    });

  }


  private onDrop(args) {
    let [e, el] = args;
    console.log("on Drop");
    console.log(e);
    console.log(el);
  }

我知道el包含拖动的元素,但是如何从打字稿中的 html 元素中获取 id?

4

2 回答 2

5

如果el是 被拖动的元素,那么它的 id 是el.id。这就是 DOM 的工作方式。如果您正在拖动一个元素并且该元素在您的代码中<div id="foo">something</div>被分配给,那么将是.elel.id"foo"

于 2016-12-16T11:57:01.133 回答
2

如果您的 html 元素是从对象模型派生的,那么现在有一种更简洁的方法来使用 dragula v2.0 获取 id。

通过使用[(dragulaModel)],您可以访问整个对象模型,包括对象的 id。例如:

在 html 中:

<div [(dragulaModel)]="listOfItems">
   <div *ngFor="let item of listOfItems">
   </div>
</div>

然后,在您的 Angular 服务中:

this.subs.add(
   dragulaService.dropModel().subscribe((value) => {
      // prints the item's id
      console.log(value.item.id);
   })
)

此方法最好的部分是您可以访问拖动项目的所有属性value.item以及其他属性。请参阅文档:https ://github.com/valor-software/ng2-dragula#special-events-for-ng2-dragula

于 2018-12-31T08:08:09.697 回答