ngx-bootstrap bs-sortable 在将菜单项拖动到可排序部分时显示先前拖动的项目

Posted

技术标签:

【中文标题】ngx-bootstrap bs-sortable 在将菜单项拖动到可排序部分时显示先前拖动的项目【英文标题】:ngx-bootstrap bs-sortable shows prevously dragged item when a menu item is dragged to the sortable section 【发布时间】:2020-03-11 07:45:30 【问题描述】:

一旦从 bs-sortable 部分拖动一个项目,它就会存储在缓存中,并且每当外部元素(例如:拖动菜单)时,先前拖动的项目就会出现在可排序部分中。

从提供的 gif 中查找更多信息:

https://lh3.googleusercontent.com/-ztVT2dV-Z4g/Xc5k5syOL2I/AAAAAAAAKeI/KmfvezqDx4425kTLr6TgHpFilX90fSF4wCK8BGAsYHg/s0/2019-11-15.gif

这里是原文链接:

https://valor-software.com/ngx-bootstrap/#/sortable

知道如何解决这个问题...

提前致谢。

【问题讨论】:

【参考方案1】:

我刚刚解决了上述问题。如果有人正在寻找答案,这里是代码。

转到 node_modules 并在以下位置编辑 sortable.component.js 文件:node_modules/ngx-bootstrap/sortable/sortable.component.js

如下图在函数内部添加标志变量,

function SortableComponent(transfer) 
  ...
  this.itemFlag = false;
  ...
 
 SortableComponent.prototype.onItemDragstart = function (event, item, i) 
  this.itemFlag = true;
  ...
;
SortableComponent.prototype.onItemDragover = function (event, i) 
  if(!this.itemFlag)
      return;   
  
  ...
;

SortableComponent.prototype.writeValue = function (value) 

  this.itemFlag = false;
  ...
;

这解决了我的问题!!。

【讨论】:

以上是关于ngx-bootstrap bs-sortable 在将菜单项拖动到可排序部分时显示先前拖动的项目的主要内容,如果未能解决你的问题,请参考以下文章

angular8中错误Cannot find module ‘ngx-bootstrap‘. 5 import { PaginationModule } from ‘ngx-bootstrap‘;

angular8中错误Cannot find module ‘ngx-bootstrap‘. 5 import { PaginationModule } from ‘ngx-bootstrap‘;

angular8中错误Cannot find module ‘ngx-bootstrap‘. 5 import { PaginationModule } from ‘ngx-bootstrap‘;

angular8中错误Cannot find module ‘ngx-bootstrap‘. 5 import { PaginationModule } from ‘ngx-bootstrap‘;(代

手风琴组标题的样式(ngx-bootstrap)?

ngx-bootstrap 下拉菜单未在 Angular 5 项目中打开