在visjs完成加载图表后获得回调

时间:2015-12-30 19:32:27

标签: javascript vis.js

我想在加载图表后从visjs获得回调,这样我就可以取消隐藏图表并停止加载动画。但是,我没有看到注册商在文档中回调。

现在,我是javascript的新手,所以也许我没有正确考虑这个问题?希望有人能指出我正确的方向。谢谢!

4 个答案:

答案 0 :(得分:3)

我是vis.js的创作者之一。

vis.js 的可视化应该同步加载,因此不需要回调。在检查了时间轴和Graph2d后,我发现情况不再是这种情况,这不是故意的行为。我已经在这里打开了一个问题:https://github.com/almende/vis/issues/1541

我不知道您正在使用哪个可视化,但Timeline和Graph2d的解决方法是:同步加载可视化,并在下一个时钟加载项目。因此,您可以在0 ms后设置超时回调:

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

答案 1 :(得分:2)

我在第一场秀中解决了改变事件的麻烦。

 var firstshow=true;
 $scope.timeline.on("changed", function (properties) {
                if(firstshow)
                {
                    $scope.timeline.focus($scope.timeline.getVisibleItems());
                    firstshow=false;
                }

答案 2 :(得分:1)

对我有用的解决方案是:

timeline.on('finishedRedraw', function() {

    console.log('do something');

});

答案 3 :(得分:0)

似乎仍然没有解决。您也可以加入 currentTimeTick 时间轴事件。请注意,此事件会不断触发,因此您可以在第一次触发后退订。

this.timeline.on("currentTimeTick", (prop) => {
        // Do something here
        // After fired the first time we un-subscribed
        this.timeline.off("currentTimeTick")
    })