javascript - Cytoscape layout - Ingen sådan layout cola hittades


Jag använder Cytoscape på ett Angular 2-projekt med Typescript och ville använda Cola-layouterna. Därför lade jag till beroendet i mitt projekt med hjälp av npm. Eftersom jag använder Angular 2 med Typescript har jag först lagt till js-modulen i filen angular-cli.json och sedan i index.html-filen. Därefter importerar jag biblioteket i min NetworkComponent, som är Angular-komponenten jag använder för att visa grafen, på följande sätt:

declare var cola:any;

Då försöker jag använda layouten på följande sätt:

   this.cyto = cytoscape({
            container: document.getElementById("graph"),
            elements: this.graph.elements,
            style: res.json()
            });
    this.cyto.layout({name: "cola"});

Grafen visas inte och jag får följande fel i konsolen:

Kan inte tillämpa layout: Ingen sådan layout 'cola' hittades; inkluderade du dess JS-fil?

Jag kan använda concentric-layouten och grafen visas, men jag får samma fel för andra layoutextensioner såsom cose-bilkent och springy.

Hur kan jag importera cola-biblioteket och använda det som mitt grafiska layout? Vad kan vara fel här?

Svar #1

  1. Installera cytoscape-cola:

    npm install cytoscape-cola --save
    
  2. Importera cytoscape-cola-modulen:

    import cola from 'cytoscape-cola';
    
  3. Använd cola i komponent:

    cytoscape.use(cola);
    

då kan du kalla cola-layout.

Svar #2

Det var en enkel lösning. Det visade sig att jag glömde lägga till en referens till cola.js-filen i index.html som krävs av cytoscape-cola.js. Jag trodde att det räckte med att bara använda cytoscape-cola.js, men efter att ha lagt till cola-js-filen fungerar det korrekt.

Relaterade artiklar