【发布时间】:2020-12-11 09:10:17
【问题描述】:
我正在使用 ng2-dragula 进行拖放功能。当我在最后拖放第一个元素(或任何元素)然后尝试使用 addNewItem 按钮将新项目添加到数组中时,我看到了问题,新项目没有添加到最后。如果我不将元素放到最后,则会在 UI 的最后添加新项目。 我希望新项目在任何情况下都显示在底部。任何帮助表示赞赏。 Angular 7 无法重现此问题。我看到 Angular 9 会发生这种情况
JS
export class SampleComponent {
items = ['Candlestick','Dagger','Revolver','Rope','Pipe','Wrench'];
constructor(private dragulaService: DragulaService) {
dragulaService.createGroup("bag-items", {
removeOnSpill: false
});
}
public addNewItem() {
this.items.push('New Item');
}
}
HTML
<div class="container" [dragula]='"bag-items"' [(dragulaModel)]='items'>
<div *ngFor="let item of items">{{ item }}</div>
</div>
我从评论中编辑了 stackblitz 以帮助可视化问题。这似乎是在将一个单位拖到列表底部时触发的。更新堆栈闪电战:https://stackblitz.com/edit/ng2-dragula-base-ykm8fz?file=src/app/app.component.html ItemsAddedOutOfOrder
【问题讨论】:
-
而不是做 items.push()。尝试做 items.unshift()。
-
@Muhammad Kamran - 尝试使用 unshift,结果相同。事实上,随着这个变化,项目总是被添加到顶部。只有当我们将任何元素拖到末尾时才会添加它之前
-
你能在这里复制吗? stackblitz.com/edit/…
-
@yurzui - 我无法在共享的 stackblitz url 中重现。但是在本地我可以用 angular 9 进行复制
-
如果不能复现就很难帮你了。
标签: javascript angular angular9 dragula ng2-dragula