当前位置: 首页 > 知识库问答 >
问题:

使用jsPlumb拖动div时,其id尚未从AngularJS绑定中插入

樊宏义
2023-03-14

我的流程图使用jsPlumb使节点可拖动,然后允许节点之间的连接。然而,即使只是拖动,我也会被一个错误耽误。

每当我拖动一个节点时,控制台都会为移动的每个像素记录一条错误消息。错误是jsplump函数失败:TypeError:无法读取未定义的的属性'el',我设法将其跟踪到jsplump.js第4919行。
在那里,局部变量elId(表示节点divid)被正确设置为node-1。但是,在managedElements对象中,节点是用键node-{{{$ctrl.node.id}保存的。因此,当尝试访问managedElements[elId].el(在第4919行中)时,找不到(正确的)elId作为键,这会提示上述错误。

我无法确定何时设置了managedId。作为节点.component一部分的控制器具有以下代码(JsPlump服务仅返回一个jsPlumbInstance):

const NodeController = ['$element', 'JsPlumb', function ($element, JsPlumb) {
  const nodeDiv = $element.children('.node');
  JsPlumb.draggable(nodeDiv);
}];

我还尝试在模板完全链接时设置draggable方法(我是AngularJS的新手,不确定在调用控制器时是否进行了插值):

const NodeController = ['$element', 'JsPlumb', function ($element, JsPlumb) {
  const ctrl = this;

  ctrl.$postLink = function () {
    const nodeDiv = $element.children('.node');
    JsPlumb.draggable(nodeDiv);
  };
}];

每当触发鼠标移动事件时,所有这些代码段仍会在控制台中产生错误。

你知道我如何解决这个错误吗?我是否可以为管理删除提供正确的id


共有1个答案

富念
2023-03-14

问题是,$element没有插入id,因此具有无效id的元素被传递到jsPlumb并保存在managedElements中。

由于我不知道如何访问控制器中的插值元素,我手动重置控制器中元素的id,然后将元素传递给jsPlumb。

 类似资料:
  • 我在父div中有一堆可拖动的div。并且所有的div都有一个弹出的编辑面板来编辑它们的内容。问题是DIV是在另一个之上的,因此当编辑面板被打开时,它会被一个DIV覆盖。相反,我想要的是,每当我点击一个div拖动它,它应该在顶部连同它的编辑面板。我怎么解决这个?

  • 问题内容: 我试图弄清楚如何用角度绑定工具提示的内容。我有一个看起来像这样的指令: script.js 它从这里使用qTip2插件 我的index.html看起来像这样(请注意,在实际文件中,我已经包括了所有源文件,为了避免混乱,我只是未将其粘贴在此处): 和 button.html 如您在指令代码中看到的。将button.html加载到工具提示中,但是这会阻止angular正常运行-将butto

  • 我正在尝试获取我的以将视频上传到我拥有的其他频道,如此处所述。 我使用下面的代码来获取< code > content-owner-id :(PHP) 这是我得到的错误: 发生服务错误:调用GETgoogleapis.com/youtube/partner/v1/contentOwners?fetchMine=true时出错:(403)访问未配置。YouTubeContent ID API以前未在

  • 本文向大家介绍AngularJS动态生成div的ID源码解析,包括了AngularJS动态生成div的ID源码解析的使用技巧和注意事项,需要的朋友参考一下 1、问题背景 给定一个数组对象,里面是div的id;循环生成div元素,并给id赋值 2、实现源码 3、实现结果 以上所述是小编给大家介绍的AngularJS动态生成div的ID源码解析,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会

  • 问题内容: 我一直使用类似于以下内容的方法来实现它: …但是一旦加载,就会发生主键冲突。这是唯一插入到该表中的唯一语句。那么这是否意味着上述陈述不是原子的? 问题在于,这几乎不可能随意重建。 也许我可以将其更改为以下内容: 虽然,也许我使用了错误的锁,或者使用了过多的锁之类的东西。 看到了其他问题,那里的答案都提示“ IF(SELECT COUNT(*)…INSERT”等),但我始终处于(也许不正

  • 问题内容: 我希望能够单击鼠标并将其保持在div内并移动其背景。在Google上搜索了很多内容,却没有找到我想要的。 问题答案: 好吧,让它起作用。我想我可以解决所有问题了: 最终的jQuery有界限 原始答案 HTML CSS jQuery