我是否可以将D3形状的文本元素设置为仅在变量具有值时才显示?在下面的代码中,矩形呈现但宽度将根据selections
(文档ID数组)的值而更改。如果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
});
});
为空,我仍然希望渲染形状,但不希望任何文本标签。现在,我看到$ NaN。不知道在哪里包含if语句。
import Ember from 'ember';
export default Ember.Controller.extend({
appName: "Debounce",
it: false,
actions: {
changeIt() {
this.toggleProperty('it');
}
},
logIt() {
console.log('logging it');
console.log(this.get('it'));
},
observeIt: Ember.observer('it', function() {
console.log('will debounce');
Ember.run.debounce(this, 'logIt', 5000, false);
}),
});
答案 0 :(得分:0)
您可以将其添加到文字属性中。
node.append("text")
.style("display", function (d) { return (d.data.i) ? null : "none" })
如果没有d.data.i,则显示设置为none。 Null表示将显示。