移动节点后获取位置
Get location after moving node
移动节点后如何获取当前位置以保存到数据库新位置。
myDiagram.addDigramListener("SelectionMoved",
function(e) {
let part = e.subject.part;
console.log(part)
}
)
但是该部分总是为空,为什么?
e.subject
是一个集合,是所有个移动的Parts的选择。移动的部分可能不止一个。
如果你有理由确定只有一个Part移动了,你可以这样写:
myDiagram.addDigramListener("SelectionMoved",
function(e) {
let part = e.subject.first();
console.log(part.toString())
}
)
但是如果你只是想将位置保存到数据库中,为什么不在位置上进行双向数据绑定呢? flowchart example 证明了这一点:
// The Node.location comes from the "loc" property of the node data,
// converted by the Point.parse static method.
// If the Node.location is changed, it updates the "loc" property of the node data,
// converting back using the Point.stringify static method.
new go.Binding("location", "loc", go.Point.parse).makeTwoWay(go.Point.stringify),
我能够使用以下代码获取新位置和密钥
myDiagram.addDiagramListener("SelectionMoved", function(event) {
// https://gojs.net/latest/api/symbols/Part.html#location
// * PART
var selectedNode = event.diagram.selection.first();
console.log("selectedNode",selectedNode);
console.log("selectedNodeKey",selectedNode.key);
console.log("selectedNode", selectedNode.location.toString());
console.log("selectedNode", selectedNode.location.x);
console.log("selectedNode", selectedNode.location.y);
console.log("locationObject", selectedNode.locationObject);
//Save new location
// key: selectedNode.key
// location-x: selectedNode.location.x
// location-y: selectedNode.location.y
});
移动节点后如何获取当前位置以保存到数据库新位置。
myDiagram.addDigramListener("SelectionMoved",
function(e) {
let part = e.subject.part;
console.log(part)
}
)
但是该部分总是为空,为什么?
e.subject
是一个集合,是所有个移动的Parts的选择。移动的部分可能不止一个。
如果你有理由确定只有一个Part移动了,你可以这样写:
myDiagram.addDigramListener("SelectionMoved",
function(e) {
let part = e.subject.first();
console.log(part.toString())
}
)
但是如果你只是想将位置保存到数据库中,为什么不在位置上进行双向数据绑定呢? flowchart example 证明了这一点:
// The Node.location comes from the "loc" property of the node data,
// converted by the Point.parse static method.
// If the Node.location is changed, it updates the "loc" property of the node data,
// converting back using the Point.stringify static method.
new go.Binding("location", "loc", go.Point.parse).makeTwoWay(go.Point.stringify),
我能够使用以下代码获取新位置和密钥
myDiagram.addDiagramListener("SelectionMoved", function(event) {
// https://gojs.net/latest/api/symbols/Part.html#location
// * PART
var selectedNode = event.diagram.selection.first();
console.log("selectedNode",selectedNode);
console.log("selectedNodeKey",selectedNode.key);
console.log("selectedNode", selectedNode.location.toString());
console.log("selectedNode", selectedNode.location.x);
console.log("selectedNode", selectedNode.location.y);
console.log("locationObject", selectedNode.locationObject);
//Save new location
// key: selectedNode.key
// location-x: selectedNode.location.x
// location-y: selectedNode.location.y
});