Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/422.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何为vis.js动态计算节点和边_Javascript_Vis.js - Fatal编程技术网

Javascript 如何为vis.js动态计算节点和边

Javascript 如何为vis.js动态计算节点和边,javascript,vis.js,Javascript,Vis.js,我正在努力用正确的方法从查询结果中正确定义图表的数据 不幸的是,我在结果中只得到了一个空圆圈 obj = JSON.parse(response); $.each(obj.aggregations.system.buckets, function(s, system) { if (system.doc_count != 0) { var nodes_tmp = [], edges_tmp = [], firs_id = '', prev

我正在努力用正确的方法从查询结果中正确定义图表的数据

不幸的是,我在结果中只得到了一个空圆圈

obj = JSON.parse(response);
  $.each(obj.aggregations.system.buckets, function(s, system) {
    if (system.doc_count != 0) {
      var nodes_tmp = [],
      edges_tmp = [],
      firs_id = '',
      prev_id = '',
      last_id = '';                     

      $.each(system.platformSteps.buckets, function(st, step) {
        id = st+1;
        nodes_tmp.push("{id: " + id + ", label: '" + step.key +"'}");

        if (st != 0) {
            edges_tmp.push("{from: " + prev_id + ", to: " + id +"}");
        } else {
            edges_tmp.push("{from: " + id + ", to: '" + id +"'}");
        }

        prev_id = id;
      }); // Loop platform steps

      nodes = new vis.DataSet([nodes_tmp]);
      edges = new vis.DataSet([edges_tmp]),

      var container = document.getElementById('mynetwork');
      var data = {
           nodes: nodes,
           edges: edges
      };
      var options = {};
      var network = new vis.Network(container, data, options);
    }; // If system.doc_count != 0
  }); // Loop systems
调试生成的对象时,我得到了不同结构的节点数据:

  • 节点
    • _资料
      • 3925b97c-cc43-45f4-8b2c-99773a0960e6
        • 0:{id:1,标签:'AIBFULLTRACE'}
        • 1:“{id:2,标签:'Euchyclone'}”
        • id:“3925b97c-cc43-45f4-8b2c-99773a0960e6”
但在演示中,模式是:

  • 节点
    • _资料
      • 1:对象
        • 身份证号码:1
        • 标签:“节点1”
      • 2:对象
        • 身份证号码:2
        • 标签:“节点2”
我在那里的作业哪里做错了

谢谢,雷迪


使用eval()和.add()方法修复:

                        var node_tmp = {},
                                edge_tmp = {},
                                node_txt = '',
                                edge_txt = '',
                            firs_id = '',
                                prev_id = '',
                                last_id = '';       
                        var nodes = new vis.DataSet(node_tmp);
                        var edges = new vis.DataSet(edge_tmp);                                                      

                        $.each(system.platformSteps.buckets, function(st, step) {
                            id = st+1;

                            if (st == 0) {
                                node_txt = '({id: ' + id + ', label: \'' + step.key +'\',shape: \'box\', first: true})';
                        } else {
                                node_txt = '({id: ' + id + ', label: \'' + step.key +'\',shape: \'box\'})';
                            }
                            node_tmp = eval(node_txt);
                            nodes.add(node_tmp);

                            if (st != 0) {
                                edge_txt = '({from: ' + prev_id + ', to: ' + id +',arrows:\'to\', label:\'to\'})';
                                edge_tmp = eval(edge_txt);
                                edges.add(edge_tmp);
                            } else {
                                //edges_tmp.push("{from: " + id + ", to: '" + id +"'}");
                            }
                            //console.log(edges_tmp.toString());

                            prev_id = id;
                        }); // Loop platform steps
                        var node_tmp = {},
                                edge_tmp = {},
                                node_txt = '',
                                edge_txt = '',
                            firs_id = '',
                                prev_id = '',
                                last_id = '';       
                        var nodes = new vis.DataSet(node_tmp);
                        var edges = new vis.DataSet(edge_tmp);                                                      

                        $.each(system.platformSteps.buckets, function(st, step) {
                            id = st+1;

                            if (st == 0) {
                                node_txt = '({id: ' + id + ', label: \'' + step.key +'\',shape: \'box\', first: true})';
                        } else {
                                node_txt = '({id: ' + id + ', label: \'' + step.key +'\',shape: \'box\'})';
                            }
                            node_tmp = eval(node_txt);
                            nodes.add(node_tmp);

                            if (st != 0) {
                                edge_txt = '({from: ' + prev_id + ', to: ' + id +',arrows:\'to\', label:\'to\'})';
                                edge_tmp = eval(edge_txt);
                                edges.add(edge_tmp);
                            } else {
                                //edges_tmp.push("{from: " + id + ", to: '" + id +"'}");
                            }
                            //console.log(edges_tmp.toString());

                            prev_id = id;
                        }); // Loop platform steps

使用eval()和.add()方法修复:

                        var node_tmp = {},
                                edge_tmp = {},
                                node_txt = '',
                                edge_txt = '',
                            firs_id = '',
                                prev_id = '',
                                last_id = '';       
                        var nodes = new vis.DataSet(node_tmp);
                        var edges = new vis.DataSet(edge_tmp);                                                      

                        $.each(system.platformSteps.buckets, function(st, step) {
                            id = st+1;

                            if (st == 0) {
                                node_txt = '({id: ' + id + ', label: \'' + step.key +'\',shape: \'box\', first: true})';
                        } else {
                                node_txt = '({id: ' + id + ', label: \'' + step.key +'\',shape: \'box\'})';
                            }
                            node_tmp = eval(node_txt);
                            nodes.add(node_tmp);

                            if (st != 0) {
                                edge_txt = '({from: ' + prev_id + ', to: ' + id +',arrows:\'to\', label:\'to\'})';
                                edge_tmp = eval(edge_txt);
                                edges.add(edge_tmp);
                            } else {
                                //edges_tmp.push("{from: " + id + ", to: '" + id +"'}");
                            }
                            //console.log(edges_tmp.toString());

                            prev_id = id;
                        }); // Loop platform steps
                        var node_tmp = {},
                                edge_tmp = {},
                                node_txt = '',
                                edge_txt = '',
                            firs_id = '',
                                prev_id = '',
                                last_id = '';       
                        var nodes = new vis.DataSet(node_tmp);
                        var edges = new vis.DataSet(edge_tmp);                                                      

                        $.each(system.platformSteps.buckets, function(st, step) {
                            id = st+1;

                            if (st == 0) {
                                node_txt = '({id: ' + id + ', label: \'' + step.key +'\',shape: \'box\', first: true})';
                        } else {
                                node_txt = '({id: ' + id + ', label: \'' + step.key +'\',shape: \'box\'})';
                            }
                            node_tmp = eval(node_txt);
                            nodes.add(node_tmp);

                            if (st != 0) {
                                edge_txt = '({from: ' + prev_id + ', to: ' + id +',arrows:\'to\', label:\'to\'})';
                                edge_tmp = eval(edge_txt);
                                edges.add(edge_tmp);
                            } else {
                                //edges_tmp.push("{from: " + id + ", to: '" + id +"'}");
                            }
                            //console.log(edges_tmp.toString());

                            prev_id = id;
                        }); // Loop platform steps