CytoscapeとAngularJSを使用してネットワークワークフローを作成しようとしています。 2つのノードを作成した後、ユーザーはそれらの間にエッジを作成できます。このため私はcy.on('cxttap')
サイトスコープ機能を使用して、両方のノードの右クリックを検出し、新しいエッジを挿入します。 これは正常に動作します。私が新しいビューを追加するまで、ユーザーはデータベースから保存されたワークフローを見ることができます。問題は、表示タブを開いて作成タブに戻ると、cy.on('cxttap')
関数が2回呼び出され、2つのエッジがサイトスコープキャンバスに挿入されますが、スコープ変数に1つのエントリしか作成されないということです。私は両方のビューのために同じ工場を持っていましたが、今はそれぞれ別の角度の工場を使用しています。複数回呼び出されたCytoscapeイベントcxttap
これらのタブを複数回開いた場合、表示タブを開く回数は関数が呼び出された回数、つまりより多くの行数になります。
ここで(https://jsfiddle.net/y47kwpg7/4/)は、両方のコントローラを使用した両方のビューのコードを含むスニペットです。 "作成ビュー" - > "MlalTextWorkflowGeneratorCtrl"および "ビューの表示" - > "MlalTextWorkflowViewerCtrl"
私はここにある工場cytoscapeキャンバス用ですが(私を許してください、私はそれが単一のファイルで動作させる方法がわからない)、および他のビューのための同様のものを持っていますが、と異なるIDの選択。
ありがとうございました!
私は新しいビューを作成するたびに新しいインスタンスを作成していますが、私が認識している問題は、リスナーが読み込まれていることです。入力からビューを離れる前に古いリスナーを削除するにはどうすればよいですか? –