Ich habe ein Netzwerk-Diagramm mit Cytoscapejs erstellt. Ich versuche, ein div einzublenden und weitere Dinge zu laden, nachdem der Benutzer auf die Kante des Diagramms geklickt hat.
Ich habe folgend in meinem Controller:
CytoscapeService.getGraph().on('tap', 'edge[id = "123"]', function (event) {
console.log("Hi")
//Above console printout works.
//The below does not work on index.html
$scope.testMessage = "Hello World";
$scope.showMe = function() {
$scope.show = true;
}
$scope.showMe();
});
// This works though.
//$scope.testMessage = "Hi from outside";
Und in Index.HTML:
<div ng-controller="MainCtrl" class="container" ng-show="show">
</div>
<div ng-controller="MainCtrl">
{{testMessage}}
</div>
Die console.log Druck bekommt, aber der $ scope.showMe mit Funktion innerhalb isn Ich werde nicht angerufen. Wenn ich jedoch den Bereich außerhalb dieser Klausel in den Hauptsatz des Controllers verschiebe, funktioniert er.
Gibt es Alternativen, wie ich das erreichen kann?
ein Grund, warum Sie nicht 'ng-click' verwenden? – Akis
@Akis, liegt daran, dass ich ein Ereignis auf eine von der Bibliothek Cytoscape.js generierte Kante anlege. Ich weiß, wie man ng-click auf ein gewöhnliches HTML-Element wie Knopf hinzufügt, aber dies ist ein Graph, der von einer Third-Party-Bibliothek erzeugt wird, daher weiß ich nicht, wie man einen "ng-click" fügt, wenn die Knoten/Kanten sind automatisch erzeugt. –
Wenn Sie nur '$ scope.show = true;' statt in der Funktion haben? – Akis