更新:我意識到,試圖對數據庫執行查詢這在遊戲中後期是拙劣的形式 - 我更新了我的代碼,使我進入D3的原始數據已包含我需要創建我的圖表中的信息和一切按預期工作。如何在D3中使用資源對象(通過promise)?
我試圖建立一個力向圖執行節點元素數據庫查找來獲得有關在該圖進一步定製該節點的附加信息。
在下面的示例中,我嘗試使用FontAwesome glyphs爲我的節點創建「圖標」。現在,在我的getIcon()
函數中,我正確繪製了節點圖標/字形IF和ONLY,如果我立即返回unicode值。一旦我承諾並等待返回價值,事情就會崩潰。在承諾有機會返回之前,D3正在構建和渲染圖。我如何才能讓.text(getIcon)
等待在我們解決了我的承諾之後纔將文本(字形圖標)附加到節點?
node.append('text')
.attr('text-anchor', 'middle')
.attr('dominant-baseline', 'central')
.style('font-family','FontAwesome')
.style('font-size','24px')
.text(getIcon)
.style('fill', function (d) {
return color(d.group);
});
getIcon()
定義如下:
function getIcon(d) {
myPromise.then(function(data) {
if(data.value) {
return '\uf108';
} else { return '\uf233'; }
});
}
燦你在宣佈諾言的地方發佈了代碼? –