仅当变量具有值时才显示D3文本标签

时间:2016-05-13 01:37:41

标签: javascript meteor d3.js

我是否可以将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);
  }),

});

1 个答案:

答案 0 :(得分:0)

您可以将其添加到文字属性中。

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

如果没有d.data.i,则显示设置为none。 Null表示将显示。