使用ng2-dragula复制

我希望我的源模型在拖动一个元素后保持不变。 这是我有沙发的人: component.ts:

constructor(private dragulaService: DragulaService) {
    this.dragulaService.dropModel('DragItems').subscribe(dropItem => {
        this.text += dropItem.item.data;
    });
}

component.html:

<ul [dragula]="'DragItems'" [dragulaModel]="datas">
    <li *ngFor="let data of datas">
        <div class="list-item-class">
            {{data.value}}
        </div>
    </li>
</ul>

在我的目标字段中,我已经有一些文本,并将拖动项的值附加到现有文本的末尾,但是拖动项消失了。谢谢您的帮助!

qq447832433 回答:使用ng2-dragula复制

您可以使用选项tell Dragula that your item should be copied而不移动:

  

copyItem: <T>(item: T) => T

     

如果有:

     
      
  • [(dragulaModel)]
  •   
  • copy为true或返回true
  • 的函数   
     

... ng2-dragula必须创建您选择的JS对象的副本   起来在ng2-dragula的先前版本中,有一个非常糟糕的越野车,   一种适合所有人的克隆功能。从v2开始,您必须提供   您自己的copyItem函数。

     

如果您有一个没有嵌套值的简单对象,则可能是   简单为:   { copy: ...,copyItem: (item: MyType) => ({ ...item }) }

     

demo page上有一个使用Person类的完整示例。

,

诀窍是在致电this.dragulaService.dropModel(...之前,我必须设置复制选项:

this.dragulaService.find('DragItems').options.copy = true;
this.dragulaService.find('DragItems').options.copyItem = (item: any) => ({...item});
本文链接:https://www.f2er.com/3159774.html

大家都在问