我想在完成加載圖表後取回visjs,以便我可以取消隱藏圖表並停止加載動畫。不過,我並沒有看到註冊商在文檔中回調。在visjs完成加載圖表後獲得回調
現在,我是新來的JavaScript,所以也許我沒有想到這個正確?希望有人能指引我正確的方向。謝謝!
我想在完成加載圖表後取回visjs,以便我可以取消隱藏圖表並停止加載動畫。不過,我並沒有看到註冊商在文檔中回調。在visjs完成加載圖表後獲得回調
現在,我是新來的JavaScript,所以也許我沒有想到這個正確?希望有人能指引我正確的方向。謝謝!
我是vis.js的創造者之一。
vis.js 的可視化效果應該是同步加載,所以不需要回調。雖然檢查了時間軸和Graph2d,但我發現情況並非如此,這不是有意的行爲。我在這裏爲此打開了一個問題:https://github.com/almende/vis/issues/1541
我不知道您使用的是哪種可視化,但時間軸和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);
同意回調似乎不需要。圖表庫很好的工作。 – Roberto
我解決了第一次演出中更改事件的麻煩。
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');
});
你加載數據不同步? – Roberto
數據異步加載,並在加載完成時收到回調。然後,我處理數據並調用visjs。我認爲visjs進程是異步運行的,因爲我的代碼繼續執行並將控制返回給瀏覽器...但是之後我必須等待圖形顯示出來。我想改爲顯示加載圖形,然後在visjs圖形完成「渲染」時獲取信號。 – Aquadisco
我看着visjs文檔,就像你一樣,沒有找到辦法。然而,如果這是您的項目的選擇,還有其他圖形庫。我喜歡的是[webix](http://webix.com/),它設計精良,使用起來非常簡單。爲了進行比較,下面列出了它們的[圖表事件](http://docs.webix.com/api__refs__ui.chart.html)和一些[示例圖表](http://docs.webix.com/samples/08_chart /index.html) – Roberto