从控制器获取 vis.js 网络事件

Get vis.js networkEvents from the controller

我需要在我的控制器中使用点击事件。 networkEvents 是在 angular-vs.js 指令中创建的,我需要在我的控制器中使用它来触发各个节点的点击事件。

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

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

谢谢,

这是我的plunker

index.html

您似乎没有设置 vis-network 指令的 events 属性,所以我认为您的意思是:

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

angular-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 循环来附加事件,要获取点击事件,您只需将其添加到 networkEvents 对象:

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