javascript - Dragula 和 Angular 5 - 通过拖放更新对象位置值
问题描述
我有一个带有多个 div 的包,其中每个 div 都有一个项目列表,这些项目都具有相同的位置值,所以“杂项”div 的项目都具有“位置:杂项”,“盔甲”div 的项目都具有有“位置:盔甲”等
我可以将项目分类到各自的 div 中,但我希望能够将项目拖到另一个 div,然后相应地更改项目的位置值,但我不知道该怎么做。
我尝试了这个解决方案,但我一定没有正确理解它。
代码片段 - 这只是控制台“未定义”
HTML:
<div
[dragula]='"bag-equipment"'
[dragulaModel]="equipmentBagOfHolding"
[attr.data-id]="bag-equipment"
>
<mat-card
*ngFor="let item of equipmentBagOfHolding"
>
{{ item.name }}
</mat-card>
</div>
<div
[dragula]='"bag-equipment"'
[dragulaModel]="equipmentArmor"
[attr.data-id]="bag-equipment"
>
<mat-card
*ngFor="let item of equipmentArmor"
>
{{ item.name }}
</mat-card>
</div>
TS:
dragulaService.drop.subscribe(value => {
const [bagName, e, el] = value;
console.log('id is:', e.dataset.id);
});
解决方案
我意识到我可以通过以下方式获取起点和目的地:
this.dragula.drop.subscribe(value => {
//Bag
console.log(value[0]);
// What is moved
console.log(value[1]);
// Destination
console.log(value[2]);
// Origin
console.log(value[3]);
});
并找到目的地的 id,例如:
console.log(value[2]['id']);
推荐阅读
- c# - 打开出站端口以通过 SMTP 发送电子邮件
- firebase - Flutter / Dart:如何在 ListView 底部添加一个额外的小部件?
- java - 片段中的TextView在Android Studio中返回Null
- r - 合并两列中的字符并创建一个新列
- android - GetPositionAsync 任务取消异常
- python-asyncio - asyncio:只能在前一个任务达到预定义阶段时启动任务吗?
- keras - 训练后如何计算 BiGAN 鉴别器损失
- flutter - Flutter 无法更新动态 TextEditingController 文本
- python - ValueError:Series.replace 不能使用 dict-value 和 non-None to_replace
- laravel - Laravel:更新数据时在 null 上调用成员函数 getClientOriginalName()