vis.js删除单个节点时删除整个图形

问题描述 投票:0回答:1

我正在尝试从vis.js图中删除一个节点。应用该函数时,将删除整个图形,而不是删除节点及其传出边缘。我希望在页面刷新时保持更改完整。与此相关的调用是deleteNode(在index.html中)和app.delete(在index.js中)。

index.html的:

var deleteNode = function(data, callback){
  $.ajax({
    method: "delete",
    url: "/api/node",
    data: {node: data.nodes[0] },
    success: function(result){
      callback(result);
    }
  })
};

index.js:

app.delete("/api/node", function(req, res){
  var deleteNode = req.body.node;
  var deleteResult = {
    nodes:[],
    edges: []
  };

  var updatedNodes = _.filter(data.nodes, function(node){
    var keep = (node.id !== deleteNode);
    if(!keep){
      deleteResult.nodes.push(node);
    }
    return keep;
  });

  var updatedEdges = _.filter(data.edges, function(edge){
    var keep = (edge.from !== deleteNode) || (edge.to !== deleteNode);
    if(!keep){
      deleteResult.edges.push(node);
    }
    return keep;
  });

  data.nodes = updatedNodes;
  data.edges = updatedEdges;

  res.send(deleteResult).end();
});
javascript jquery ajax api vis.js
1个回答
0
投票

你确定你的逻辑是正确的吗?这是我要在这里检查的第一件事。特别是,我看到你的'delete'方法似乎正在返回'deleteResult'变量,该变量可能包含你因API调用而删除的所有节点。也许您想要返回'data'变量?

© www.soinside.com 2019 - 2024. All rights reserved.