Cytoscape と AngularJS 1.6 を使用してネットワーク ワークフローを作成しようとしています。2 つのノードを作成した後、ユーザーはそれらの間にエッジを作成できます。このために、cy.on('cxttap')
サイトスケープ機能を使用して両方のノードで右クリックを検出し、新しいエッジを挿入しています。これはうまくいきます。ユーザーがデータベースから保存されたワークフローを表示できる新しいビューを追加するまで。問題は、[表示] タブを開いてから [作成] タブに戻ると、cy.on('cxttap')
関数が 2 回呼び出され、サイトスケープ キャンバスに 2 つのエッジが挿入されますが、スコープ変数には 1 つのエントリしか作成されないことです。以前は両方のビューに同じファクトリを使用していましたが、現在はそれぞれに異なる角度のファクトリを使用しています。
これらのタブの切り替えを複数回開くと、表示タブを開く回数が関数が呼び出される回数になるため、行数が増えます。
ここ ( https://jsfiddle.net/y47kwpg7/4/ ) は、ビューとコントローラーの両方のコードを含むスニペットです。「作成ビュー」→「MlalTextWorkflowGeneratorCtrl」と「閲覧ビュー」→「MlalTextWorkflowViewerCtrl」。
(許してください、単一のファイルで動作させる方法がわかりません)
ここにあるファクトリは cytoscape キャンバス用であり、別のビュー用に同様のものを持っていますが、id の選択が異なります。
ご協力ありがとうございました!