¿Alguien que use vis.js con AngularJS?

Estoy tratando de usar vis.js con AngularJS. Está funcionando bien, construí una directiva simple … Pero necesito usar algunos de los events enumerados aquí , pero no los despiden.

En este ejemplo, el graph.on('select', ...) no se activa, ¿hay algún problema sobre cómo lo estoy haciendo?

Esto es lo que estoy haciendo:

  app.directive('visGraph', [function() { return { restrict: 'AE', scope: { data: '=data', options: '=options' }, link: function(scope, element, attrs) { var container = element[0]; var graph = null; graph = new vis.Graph(container, scope.data, scope.options); scope.$watch(function() { return scope.data; }, function(value) { graph = new vis.Graph(container, scope.data, scope.options); }); graph.on('select', function (properties) { console.info('select.properties.nodes', properties.nodes); console.info('select.properties.edges', properties.edges); }); } }; }]); 

Cualquiera puede ayudar?

Acabo de resolver este problema. En mi ejemplo, al hacer doble clic en un nodo, se networkingirigen a los detalles del nodo. Acabo de transferir los datos y las opciones a mi controller. Este código está comstackdo de Coffeescript por lo que no es el JS más perfecto:

 angular.module("myApp.directives").directive("visGraph", function($timeout, $window) { return { restrict: "AE", link: function(scope, element, attrs) { var buildGraph; buildGraph = function(scope, element) { var container, graph; container = element[0]; graph = null; graph = new vis.Graph(container, scope.data, scope.options); return graph.on('doubleClick', function(properties) { if (properties.nodes.length !== 0) { return $window.location = FRONTEND_URL + properties.nodes; } }); }; // Wait for data asynchronously with $resource in the controller scope.$watch('data', function(newval, oldval) { buildGraph(scope, element); }, true); } }; }); 

En su controller, defina $scope.data y $scope.options . En su marcado, puede agregar vis-graph .

¡Espero eso ayude!

Hice un trabajo (simple) en esto … Así que, acabo de mezclar tu código con el mío … y lo hice funcionar sin la necesidad de networkingirigir los datos al controller.

Básicamente, he agregado la posibilidad de decirle a la directiva qué evento quiero activar en vis graph y una function de callback para llamar a una function de controller desde el interior de la directiva:

 <div id="graph" vis-graph data="graph.data" options="graph.options" event="select" callback="callbackFunction(params)"></div> 

He creado un repository en GitHub con mi directiva y un ejemplo de uso simple.

¡Siéntete libre de echar un vistazo!