我使用自己的自定义连接器实现,我希望能够考虑使用相同元素的其他连接器,以便更好地计算源点和目标点。
joint.connectors.custom = function (sourcePoint, targetPoint, vertices) {
// I want to calculate the "middle" point while considering other links that might interrupt
var sourceMiddleX = this.sourceBBox.x + this.sourceBBox.width / 2;
var d = ['M', sourcePoint.x, sourcePoint.y, targetPoint.x, targetPoint.y];
return d.join(' ');
};
到目前为止,我无法在功能上下文或VElement下找到任何有用的东西。
除非有人有更好的想法,否则我会传递每个模型中每个元素的总链接,这些链接感觉不对。
提前致谢!
答案 0 :(得分:0)
调用JointJS中的连接器函数,其值this
等于joint.dia.LinkView
实例。每个linkView都可以访问它所呈现的纸张。
var paper = this.paper; // an instance of `joint.dia.Paper`
var graph = this.paper.model; // an instance of `joint.dia.Graph`
var link = this.model; // an instance of `joint.dia.Link`
// an instance of `joint.dia.Element` or `null`
var sourceElement = link.getSourceElement();
var sourceElementLinks = sourceElement
// an array of `joint.dia.Link` including the link
// these are connecting the same source element as the link
? graph.getConnectedLinks(sourceElement, { outbound: true })
// the link is not connected to a source element
: [];
// an instance of `joint.dia.Element` or `null`
var targetElement = link.getTargetElement();
var targetElementLinks = targetElement
// an array of `joint.dia.Link` including the link
// these are connecting the same target element as the link
? graph.getConnectedLinks(targetElement, { inbound: true })
// the link is not connected to a target element
: [];
您还可以查看实现类似逻辑的jumpOver
connector。