Итак, я хочу рисовать дуги, используя D3 в зависимости от данных. Однако, когда я пытаюсь передать значение как функцию, он терпит неудачу, если я передаю его как переменную, он работает.D3JS не может получить функцию?
Проверьте скрипку: http://jsfiddle.net/paulocoelho/WyABt/1/
И Heres код:
var a = [[0.1, 0.4],[0.4,0.56],[0.56,1]];
var cfg = {
w:200,
h:200
};
var g = d3.select("#testdiv").append("svg").attr("width", cfg.w).attr("height", cfg.h).append("g")
var arct = d3.svg.arc()
.innerRadius(cfg.h/4)
.outerRadius(cfg.h/3)
.startAngle(0)
.endAngle(Math.PI);
// This one works
var path = g.selectAll("circleArcs").data(a).enter().append("svg:path")
.attr("d", arct)
.style("fill","blue")
.attr("transform", "translate("+cfg.w/2+","+cfg.h/2+")");
// This one does not!
var path2 = g.selectAll("circleArcs").data(a).enter().append("svg:path")
.attr("d", function(d,i){ return arct;})
.style("fill","green");
Итак, сейчас данные не зацепили, но моя точка здесь является то, что я передаю точно такой же объект arct
но тот, который идет, хотя функция возврата не работает ...
Спасибо, это было :) – PCoelho