gojs 关于validCycle 没有验证api创建的线的解决方案

11 篇文章 2 订阅
5 篇文章 0 订阅

       在画布定义中,设置validCycle的验证规则,只能对用户在手动在画布上绘制线进行验证,如果是addLinkData添加的线则没有生效,所以我们需要在addLinkData前先判断一下是否符合validCycle的验证规则,符合才允许添加

主要用到的有toolManager.linkingTool工具基类中的isValidCycle验证函数

isValidCycle(from, to, ignore)

{boolean} 1.5

 

Checks whether a proposed link would be valid according to Diagram.validCycle. This does not distinguish between different ports on a node, so this method does not need to take port arguments. This is called by isValidLink.

This method may be overridden, but we recommend that you call this base method. It is rare that you will want to override this method. Please read the Introduction page on Extensions for how to override methods and how to call this base method.

Parameters:

{Nodefrom   源节点对象

{Nodeto       目标节点对象

{Linkignore  忽略验证的线

may be null; this is useful during relinking to ignore the originalLink

Returns:

{boolean}

用例

		//添加通过验证规则的线  源节点 fromkey ,目标节点toKey
		function addIsValidLink(fromkey, toKey) {
			var node1 = diagram.findNodeForKey(fromkey);
			var node2 = diagram.findNodeForKey(toKey);
			var tool = diagram.toolManager.linkingTool;
			var isValid = tool.isValidCycle(node1, node2);
			console.log(isValid);
			if(isValid) {
				data = {};
				data.from = fromkey;
				data.to = toKey;
				diagram.model.addLinkData(data);
			}
		}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值