gpt4 book ai didi

javascript - 有人在 AngularJS 中使用 vis.js 吗?

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:01:24 25 4
gpt4 key购买 nike

我正在尝试使用 vis.js与 AngularJS。它工作正常,我建立了一个简单的指令......但我需要使用列出的一些事件 here ,但他们没有被解雇。

在这个例子中,graph.on('select', ...) 事件监听器没有被触发,我这样做有什么问题吗?

这是我正在做的:

    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);
});

}
};
}]);

有人可以帮忙吗?

最佳答案

我刚刚解决了这个问题。在我的示例中,双击节点会重定向到节点详细信息。我刚刚将数据和选项传输到我的 Controller 。这段代码是从 Coffeescript 编译而来的,所以它不是最完美的 JS:

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);
}
};
});

在您的 Controller 中,定义 $scope.data$scope.options。然后,在您的标记中,您只需添加 vis-graph

希望对您有所帮助!

关于javascript - 有人在 AngularJS 中使用 vis.js 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23252562/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com