在 visjs 完成加载图表后获取回调
Getting a Callback after visjs finishes loading chart
我想在完成加载图表后从 visjs 获得回调,以便我可以取消隐藏图表并停止加载动画。但是,无论如何我都看不到要在文档中注册回调。
现在,我是 javascript 的新手,所以我可能没有正确考虑这个问题?希望有人能指出我正确的方向。谢谢!
我是 vis.js 的创作者之一。
vis.js 的可视化应该 同步加载,因此不需要回调。在检查了 Timeline 和 Graph2d 之后,我发现情况不再如此,这不是故意的行为。我在这里为此开了一个问题:https://github.com/almende/vis/issues/1541
我不知道您使用的是哪种可视化效果,但 Timeline 和 Graph2d 的解决方法是:同步加载可视化效果,并在下一个时间点加载项目。所以你可以在 0 毫秒后设置超时回调:
var timeline = new vis.Timeline(...);
alert('The Timeline is visible but the items not yet (this is a bug)')
setTimeout(function () {
alert('Now everything is loaded!');
}, 0);
我在第一场演出时解决了更改事件的问题。
var firstshow=true;
$scope.timeline.on("changed", function (properties) {
if(firstshow)
{
$scope.timeline.focus($scope.timeline.getVisibleItems());
firstshow=false;
}
对我有用的解决方案是:
timeline.on('finishedRedraw', function() {
console.log('do something');
});
看来这个问题还没有解决。您还可以连接到 currentTimeTick 时间轴事件。请注意,此事件会不断触发,因此您可以在第一次触发后取消订阅。
this.timeline.on("currentTimeTick", (prop) => {
// Do something here
// After fired the first time we un-subscribed
this.timeline.off("currentTimeTick")
})
我想在完成加载图表后从 visjs 获得回调,以便我可以取消隐藏图表并停止加载动画。但是,无论如何我都看不到要在文档中注册回调。
现在,我是 javascript 的新手,所以我可能没有正确考虑这个问题?希望有人能指出我正确的方向。谢谢!
我是 vis.js 的创作者之一。
vis.js 的可视化应该 同步加载,因此不需要回调。在检查了 Timeline 和 Graph2d 之后,我发现情况不再如此,这不是故意的行为。我在这里为此开了一个问题:https://github.com/almende/vis/issues/1541
我不知道您使用的是哪种可视化效果,但 Timeline 和 Graph2d 的解决方法是:同步加载可视化效果,并在下一个时间点加载项目。所以你可以在 0 毫秒后设置超时回调:
var timeline = new vis.Timeline(...);
alert('The Timeline is visible but the items not yet (this is a bug)')
setTimeout(function () {
alert('Now everything is loaded!');
}, 0);
我在第一场演出时解决了更改事件的问题。
var firstshow=true;
$scope.timeline.on("changed", function (properties) {
if(firstshow)
{
$scope.timeline.focus($scope.timeline.getVisibleItems());
firstshow=false;
}
对我有用的解决方案是:
timeline.on('finishedRedraw', function() {
console.log('do something');
});
看来这个问题还没有解决。您还可以连接到 currentTimeTick 时间轴事件。请注意,此事件会不断触发,因此您可以在第一次触发后取消订阅。
this.timeline.on("currentTimeTick", (prop) => {
// Do something here
// After fired the first time we un-subscribed
this.timeline.off("currentTimeTick")
})