2016-05-13 98 views
1

僅當變量具有值時,纔可以將D3形狀的文本元素設置爲僅顯示?在下面的代碼中,矩形呈現,但寬度將根據selections(文檔ID數組)的值而變化。如果selections爲空,我仍然希望形狀呈現,但不想要任何文本標籤。現在,我看到$ NaN。不確定在這裏包括if語句。僅當變量具有值時才顯示D3文本標籤

Template.Box.onRendered (function() { 
    const self = this; 

    //List of variables to calculate dimensions 
    var value = //Result of calculations 
    var selections = Template.parentData(0).selections; 
    var boxContainer = d3.select("#box" + boxId) 
     .append("svg") 
     .attr("id", "svg-box"); 

    var box = boxContainer.append("rect") 
     .attr("x", start + "%") 
     .attr("y", 0) 
     .attr("height", 50) 
     .attr("width", range + "%") 
     .attr("id", "box" + boxId); 

    var boxValue = boxContainer.append("text") 
     .attr("x", boxSpace + "%") 
     .attr("y", "20px") 
     .text(value) 
     .attr("id", "low" + boxId); 

    self.autorun(function() { 
     //repeat code from above 
    }); 
}); 
+0

價值永遠是一個數字? – echonax

+0

是的,但在初始渲染時,計算該數字所需的輸入尚不存在。 – Bren

回答

0

您可以將其添加到您的文本屬性中。

node.append("text") 
    .style("display", function (d) { return (d.data.i) ? null : "none" }) 

如果沒有d.data.i,那麼它將顯示設置爲無。空表示它將被顯示。

相關問題