Tôi đã cố gắng chuyển đổi một ví dụ biểu đồ D3 đẹp (https://jsfiddle.net/thudfactor/HdwTH/) thành thành phần Angular2 với D3 v4 mới.D3 v4 - không thể đọc văn bản thuộc tính của null
tuy nhiên tôi nhận được một "không thể đọc văn bản tài sản của null" ngoại lệ với đoạn mã sau:
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 là một lựa chọn, thêm nên làm việc, vì vậy nó phải là .attr({})
gây ra vấn đề. Tuy nhiên nó hoạt động tốt trong jsfiddle.
Cú pháp này có thay đổi trong D3 v4 không? Làm thế nào nó sẽ là chính xác?
Cảm ơn!