我需要在控制器中使用click事件。 networkEvents是在angular-versusjs指令中创建的,我需要在我的控制器中触发单个节点的click事件。
这是我正在使用的代码段,但似乎确实有效:
$scope.networkEvents = { onload:function(network){ alert("Clicked"); } }
谢谢,
这是我的plunker。
答案 0 :(得分:2)
看起来你没有设置vis-network指令的event属性,所以我认为你的意思是:
<vis-network data="data" options="options" events="networkEvents" height="100%"></vis-network>
此外,在vis-network指令的onload回调(第151行)中,您将图形传递给onload函数,但它未定义。 (也许它应该是网络?):
// onLoad callback
if (scope.events != null && scope.events.onload != null &&
angular.isFunction(scope.events.onload)) {
scope.events.onload(network);
}
通过上述更改,onload函数似乎按预期工作。由于您已经设置了forEach循环以附加事件,因此要获取click事件,您只需将其添加到networkEvents对象:
$scope.networkEvents =
{
onload: function(network){
alert("I'm loaded");
},
click: function(clicked) {
alert("id: " + clicked.nodes[0] + " was clicked");
}
}