[UPDATE]: es stellt sich heraus, dass die npm-Version D3 nicht funktioniert, ich auf CDN-Version ändern, und alles funktioniert, aber ich frage mich immer noch was mit require ("d3 „)Warum d3 funktioniert nicht in NW.js
Alle:
ich bin ziemlich neu in NW.js, zur Zeit versuche ich, D3 in ihm zu benutzen, aber auch die grundlegende d3.select kann nicht funktionieren, eine Idee? Das einzige, was die Arbeit mit select ist 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>
Dank
Danke, also meinst du ich kann nicht so wie require ("d3") mit DOM arbeiten? – Kuan
DOM ist Teil des Browserkontextes, nicht des Knotenkontexts. Im Knotenkontext haben Sie kein DOM und alle anderen Browser-APIs (weil es Knoten ist). Sie können jedoch mit DOM aus dem Knotenkontext arbeiten, indem Sie DOM-Elemente im Knotenkontext übertragen. Wie auch immer, wenn du browser lib benutzen willst - lade es im Browserkontext. Wenn Knoten lib - Laden Sie es im Knoten Kontext. Einige Bibliotheken können im Knoten und im Browser gut arbeiten - moment.js zum Beispiel. – VoidVolker
Danke, eine Sache, die ich nicht herausgefunden habe, ist, wie kann ich die Abhängigkeit verwalten, wenn ich sie einfach ohne Nachdenken einschließe? – Kuan