JointJS库的API文档在这里:http://www.jointjs.com/api 我正在使用带端口的Elements的DEVS插件.
我需要限制从端口到单个端口的连接数.
一旦从端口建立链接,用户就不能从同一端口启动连接,除非删除现有连接.
是否可以在库中没有代码更改?
即使在查看API文档和代码本身之后,我也无法获得钩子/入口点来实现此要求.任何帮助或指示表示赞赏.
PS:
我一整天都在苦苦挣扎.将磁铁设置为被动对我来说不是一个好的解决方案.在挖掘源代码后我最终得到的是使用纸质对象的validateMagnet函数.我从磁铁中获取端口,然后从源模型获取所有出站链接.如果任何链接使用相同的点我拒绝验证.这是代码:
validateMagnet: function(cellView, magnet) {
// Prevent links from ports that already have a link
var port = magnet.getAttribute('port');
var links = graph.getConnectedLinks(cellView.model, { outbound: true });
var portLinks = _.filter(links, function(o) {
return o.get('source').port == port;
});
if(portLinks.length > 0) return false;
// Note that this is the default behaviour. Just showing it here for reference.
// Disable linking interaction for magnets marked as passive (see below `.inPorts circle`).
return magnet.getAttribute('magnet') !== 'passive';
},
Run Code Online (Sandbox Code Playgroud)
它就像从图表中获取元素并在其上设置某些属性一样简单。
var source = graph.getCell(sourceId);
source.attr('.outPorts circle/magnet', 'passive')
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2378 次 |
| 最近记录: |