通过添加新宽度更新D3文本宽度

时间:2016-10-26 08:10:59

标签: d3.js dynamic

我在矩形中添加了一个D3文本,其中文本字段的值以编程方式更新。现在我需要根据文本值长度扩展宽度,但要确保将默认宽度保持为最小宽度。 我试过获取新的value.length并更新d3文本宽度,如下所示。

var length = //length of the updated text value
var elm = d3.selectAll("[id=s1]");
elm.attr('width', function(d) { return  length; });

这很好但是当我删除文本时D3文本框也一直缩小。我需要保持默认宽度,然后如果值长于此值则增加。知道怎么做吗?

1 个答案:

答案 0 :(得分:1)

您可以使用ternary operator检查最小值:

elm.attr('width', function() { 
    return  length < minimumValue ? minimumValue : length;
});

minimumValue当然是您的最低价值。