Kann ich das Textelement einer D3-Form so einstellen, dass es nur angezeigt wird, wenn eine Variable einen Wert hat? Im folgenden Code wird ein Rechteck gerendert, aber die Breite ändert sich je nach dem Wert selections
(ein Array von Dokument-IDs). Wenn selections
leer ist, möchte ich immer noch die Form rendern, möchte aber keine Textbeschriftung. Im Moment sehe ich $ NaN. Nicht sicher, wo die if-Anweisung hier eingefügt werden soll.D3-Textbeschriftungen nur anzeigen, wenn die Variable einen Wert hat
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
});
});
ist der Wert immer eine Zahl? – echonax
Ja, aber beim ersten Rendern sind die zur Berechnung dieser Zahl erforderlichen Eingaben noch nicht vorhanden. – Bren