我想在加载图表后从visjs获得回调,这样我就可以取消隐藏图表并停止加载动画。但是,我没有看到注册商在文档中回调。
现在,我是javascript的新手,所以也许我没有正确考虑这个问题?希望有人能指出我正确的方向。谢谢!
答案 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")
})