vis.js удаление целого графа при удалении одного узла - PullRequest
0 голосов
/ 28 марта 2019

Я пытаюсь удалить узел из графика 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();
});

1 Ответ

0 голосов
/ 28 марта 2019

Вы уверены, что ваша логика верна? Это первое, что я хотел бы проверить здесь. В частности, я вижу, что ваш метод delete, кажется, возвращает переменную deleteResult, в которой, вероятно, будут все узлы, которые вы удалили в результате вызова API. Возможно, вы хотите вернуть переменную data?

...