[更新]:事实证明,npm版本D3不起作用,我更改为CDN版本,一切正常,但我仍然想知道什么是错的require(“d3 “)为什么D3不工作在NW.js
所有:
我非常新的NW.js,目前我想在它使用D3,但连基本的d3.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>
感谢
谢谢,所以你的意思是我不能像require(“d3”)一样使用DOM的方式? – Kuan
DOM是浏览器上下文的一部分,而不是节点上下文。在节点上下文中,您没有DOM和所有其他浏览器API(因为它是节点)。但是,通过在节点上下文中传递DOM元素,您可以使用节点上下文中的DOM。无论如何,如果你想使用浏览器库 - 在浏览器上下文中加载它。如果节点lib - 在节点上下文中加载它。例如,一些图书馆可以在节点和浏览器中工作 - 例如,moment.js。 – VoidVolker
谢谢,我还没有想到的一件事是,如果我只是在不考虑顺序的情况下包含它们,我如何管理依赖关系? – Kuan