1

与vis.js中的事件处理程序不同manipulation帮助程序(addNode等)不提供对network或其 DOM 容器本身的引用。有没有一种方法可以访问其中一个 ifaddNodenetwork本身应该在不同的范围内定义,以便不能使用闭包?

语境。我正在使用 vis.js 在 TiddlyWiki Classic 中实现一个简单的图形编辑器。奇怪的是一次可以显示多个网络,并且生成它们的 ID,因此它们不会发生冲突,并且用户不必手动设置它们。另一方面,允许用户设置任意操作处理程序是可取的,通常需要获取具有“未知”=随机 id 的网络容器(它可以从网络本身获得network.body.container,但我未能进入network内部addNode)。

PS 我想知道如何修补 vis.js 本身,因为thisinsideaddNode等于似乎完全没用的manipulation属性。options看起来在ManipulationSystem.js调用this.options.addNode应该使用call: 而不是

    this.options.addNode(defaultData, (finalizedData) => {

(第 1156 行)应该是

    this.options.addNode.call(this, defaultData, (finalizedData) => {

PPS 在考虑提出分叉/拉取请求时,我发现很清楚将这个上下文添加到addNode(line 1156), addEdge(line 1186), editEdge(1220) 但不是editNode. 它在哪里?

4

0 回答 0