http://jsfiddle.net/z25SU/如何更新D3饼图
对不起,我意识到人们对如何做到这一点吨的材料,我已经受够了一些教程,看着虽然一些官方的GIST(像this one),但我仍然无法弄清楚。
正如你将在我的jsfiddle中看到的那样,图表用第一组数据呈现 - 但是当我单击更新按钮时图表根本不会改变。
update方法确实火,路径‘d’值是更新(通过观看在Firebug这些元素作为确认) - 它只是路径新‘d’的价值观是相同的旧的。
我需要在这里做些什么改变?几个小时以来,我一直在对着这堵墙猛撞我的头,尝试文档和教程所说的每一个不同的东西 - 我无法弄清楚。
谢谢!
而且,这里的更新方法 - 有人可能会发现问题,甚至不必看小提琴...
function updateData(dataset){
//console.info(dataset);
// Set Data
var allSlices = slicesGroup
.selectAll(".slice")
.data(pie(dataset));
// Create New Slices
var newSlices = allSlices
.enter()
.append("g")
.attr("class", "slice");
newSlices
.append("g")
.attr("class", "outer")
.append("path");
newSlices
.append("g")
.attr("class", "inner")
.append("path");
// Update All Slices
allSlices
.selectAll(".outer")
.selectAll("path")
.attr("d", outerArc);
allSlices
.selectAll(".inner")
.selectAll("path")
.attr("d", innerArc);
//console.log(newSlices);
//console.log(allSlices);
// Remove Old Slices
allSlices.exit().remove();
};
Arg!我知道这将是简单的:P谢谢你的答案,尤其是解释! – encoder