从控制器获取vis.js networkEvents

时间:2016-04-25 12:33:34

标签: angularjs vis.js

我需要在控制器中使用click事件。 networkEvents是在angular-versusjs指令中创建的,我需要在我的控制器中触发单个节点的click事件。

这是我正在使用的代码段,但似乎确实有效:

$scope.networkEvents = { onload:function(network){ alert("Clicked"); } }

谢谢,

这是我的plunker

1 个答案:

答案 0 :(得分:2)

的index.html

看起来你没有设置vis-network指令的event属性,所以我认为你的意思是:

<vis-network data="data" options="options" events="networkEvents" height="100%"></vis-network>

角vis.js

此外,在vis-network指令的onload回调(第151行)中,您将图形传递给onload函数,但它未定义。 (也许它应该是网络?):

// onLoad callback
if (scope.events != null && scope.events.onload != null &&
    angular.isFunction(scope.events.onload)) {
    scope.events.onload(network);
}

的script.js

通过上述更改,onload函数似乎按预期工作。由于您已经设置了forEach循环以附加事件,因此要获取click事件,您只需将其添加到networkEvents对象:

$scope.networkEvents = 
{
    onload: function(network){
        alert("I'm loaded");
    },
    click: function(clicked) {
        alert("id: " + clicked.nodes[0] + " was clicked");
    }
}