7
我一直在試圖用D3 D3新版本將一個漂亮的D3圖表示例(https://jsfiddle.net/thudfactor/HdwTH/)轉換爲Angular2組件。D3 v4 - 無法讀取空屬性文本
然而,我得到下面的代碼是「無法讀取空的屬性text」例外:
var textLabels = labelGroups.append("text").attr({
x: function (d, i) {
var centroid = pied_arc.centroid(d);
var midAngle = Math.atan2(centroid[1], centroid[0]);
var x = Math.cos(midAngle) * cDim.labelRadius;
var sign = (x > 0) ? 1 : -1
var labelX = x + (5 * sign)
return labelX;
},
y: function (d, i) {
var centroid = pied_arc.centroid(d);
var midAngle = Math.atan2(centroid[1], centroid[0]);
var y = Math.sin(midAngle) * cDim.labelRadius;
return y;
},
'text-anchor': function (d, i) {
var centroid = pied_arc.centroid(d);
var midAngle = Math.atan2(centroid[1], centroid[0]);
var x = Math.cos(midAngle) * cDim.labelRadius;
return (x > 0) ? "start" : "end";
},
'class': 'label-text'
}).text(function (d, i) { <--------------- exception
return d.data.label;
});
labelgroups是一個選擇,追加應該工作,所以它必須是.attr({})
造成問題的原因。它確實在jsfiddle中工作正常。
在D3 v4中是否更改了此語法?它將如何正確?
謝謝!