在某些d3js代码中,我使用匿名function(d)
从JSON文件返回-importance
的值。我使用存储在kwdAssbly
对象中的返回值来决定是否渲染图的一部分。
我打破的地方:
kwdAssbly.opt = (function(d){
return d["-importance"];
});
在对象kwdAssbly
上设置监视器时,调试器会显示kwdAssbly.width
&的数值。 kwdAssbly.height
但显示kwdAssbly.opt = kwdAssbly.opt(d)
。我希望字符串值为required
或optional
!如果我在功能中对d
进行了观察,则会显示-importance:"optional"
,但这并未分配给我的kwdAssbly.opt
对象属性
为什么将函数声明作为值返回?
这是上下文的代码段:
.attr("nullAttrib", function(d, i) { // calculate the text width and store it
var kwdAssbly = {}; //the keyword group's height and width object
kwdAssbly.width = this.getBoundingClientRect().width + padding;
kwdAssbly.height = this.getBoundingClientRect().height;
kwdAssbly.opt = (function(d){
return d["-importance"];
});
kwdProps[i] = kwdAssbly;
if (i>0){
kwdX += kwdProps[i-1].width;
if (kwdProps[i].opt == "optional"){
OptOffset = 40;
var Lsiding = kwdgrp.append(function(){return sidingL})
.attr("transform","translate(" + kwdX + ", " + (kwdProps[i].height*2/3 + line1y + OptOffset) + ")");
var Rsiding = kwdgrp.append(function(){return sidingR})
.attr("transform","translate(" + kwdX+50 + ", " + (kwdProps[i].height*2/3 + line1y + OptOffset) + ")");
}
else {
OptOffset = 0;
}
}
答案 0 :(得分:0)
Altocumulus的工作/正确答案:
您不需要匿名函数来获取字符串值。
只需使用kwdAssbly.opt = d["-importance"];