繁体   English   中英

如何保存调整后的d3.js可视化效果?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM