我正在尝试使用 Cytoscape 和 AngularJS 1.6 创建网络工作流创建两个节点后,用户能够在它们之间创建边缘。为此,我使用cy.on('cxttap')
cytoscape 函数来检测两个节点上的右键单击,然后插入新边缘。这工作正常。直到我添加了一个新视图,用户可以在其中看到数据库中保存的工作流。问题是,如果我打开查看选项卡,然后返回创建选项卡,该cy.on('cxttap')
函数会被调用两次,并且在 cytoscape 画布上插入两条边,但在我的范围变量中只创建了一个条目。我曾经为这两个视图使用相同的工厂,但现在我为每个视图使用不同的角度工厂。
如果我多次打开这些选项卡之间的切换,我打开查看选项卡的次数是调用函数的次数,因此更多的行数。
这里 ( https://jsfiddle.net/y47kwpg7/4/ ) 是我的视图及其控制器的代码片段。“创建视图”-->“MlalTextWorkflowGeneratorCtrl”和“查看视图”-->“MlalTextWorkflowViewerCtrl”。
(请原谅我,我不知道如何使它在单个文件中工作)
我在这里的工厂是用于 cytoscape 画布的,并且有一个类似的用于另一个视图,但具有不同的 id 选择。
谢谢您的帮助!