[更新] :事实证明npm版本D3不起作用,我改为CDN版本,一切正常,但我仍然想知道require(“d3”)有什么问题
所有
我对NW.js很新,目前我正在尝试使用D3,但即使是基本的d3.select也无法使用,任何想法?使用select的唯一方法是d3.select("body")
<div id="app"></div>
<script>
var d3 = require("d3");
function barChart(){
var width, height;
function render(root){
root.append("svg")
.attr({
width:width,
height:height
})
.append("rect")
.attr({
width: 0.5*width,
height: 0.5*height
})
.style({
fill:"red"
})
}
render.width = function(value){
if(value != undefined){
width = value;
return render;
}
return width;
}
render.height = function(value){
if(value != undefined){
height = value;
return render;
}
return height;
}
return render;
}
// this does not work
var root = d3.select("#app");
var chart = barChart();
chart.width(400).height(400)
chart(root);
</script>
由于
答案 0 :(得分:3)
我使用d3
安装了npm
并且必须写这个以使其正常工作:
win.on('loaded', function() {
d3_root = d3.select(document);
});
现在我可以使用d3_root.select()
代替d3.select
。
据我所知,这是因为nwjs
上下文,你正在研究&#34;服务器&#34;在脚本中,您必须先选择文档。如果直接将代码写入html文件d3.select()
应该没问题。
答案 1 :(得分:2)
在nodejs上下文中加载d3。尝试在浏览器上下文中加载它:
.truncate.truncated {
white-space: normal;
width: 500px;
}