![](/img/trans.png)
[英]How do I get the browser's “back” button to to clear the previous state of a d3.js visualization?
[英]How do I save an adjusted d3.js visualization?
我是一个菜鸟,一直在复制和更改d3.js脚本以进行实际学习。 我复制了robschmuecker的照片(代码块#7880033,2013年12月9日),D3.js拖放,可缩放,平移,可折叠树具有自动大小调整功能http://bl.ocks.org/robschmuecker/7880033
并想知道:a)重新排列树后如何保存树? b)如果重新排列后可以将其另存为其他文件(原始版本为1,重新排列为版本2)c)如何使其也保存带有重新排列的父级子代的新.json文件? (认为它们可能都是同一个问题。)
任何帮助或建议都会将我推向正确的方向。 谢谢...
在代码中,您具有root变量。 它表示带有其他字段的实际树结构,例如:“ x”,“ x0”,“ y”,“ y0”,“ id” ...要摆脱这些其他字段,可以使用以下功能:
var delAdditionalFilds = function(obj) {
for (var prop in obj) {
if (obj.hasOwnProperty(prop)) {
if (prop === 'name' || prop === 'children' || prop === 'size') {} else {
delete obj[prop];
}
}
}
if (obj.children) {
obj.children.forEach(function(v, i) {
delAdditionalFilds(v);
});
}
};
为了避免覆盖原始对象,您应该制作根变量的深层副本。 我使用lodash库来做到这一点。
因此,保存功能将1)准备根对象的深层副本,然后2)删除其他字段
var save = function(root) {
var newJSON = _.copy(root);
delAdditionalFilds(newJSON);
// now you can send newJSON to your server
};
完成此操作后,您将准备使用ajax调用将JSON对象发送到您的服务器
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.