gojs 删除前事件SelectionDeleting的使用

11 篇文章 2 订阅
6 篇文章 1 订阅

根据对象数据进行判断节点、线是否可以删除的时候 使用

PS:GOJS 1.6~1.9.?,2.0以后e.cancel = true不能使用

以下例子为根据key 判断是否可以删除,如不允许删除,设置e.cancel = true;即可

//监听节点或线的删除前事件
myDiagram.addDiagramListener("SelectionDeleting", function(e) {
	e.subject.each(function(n) {
		//n为删除节点或线的对象
		console.log(n.data);
		if(n.data.text == "开始") {
			//不允许删除,给e.cancel赋值,只能在gojs 2.0以下使用
            //在gojs 2.0中,cancel是不赞成的,有关更多信息,请参见GoJS更改日志。
			e.cancel = true;
		}
	});
})

PS:GOJS 2.0 以后
GOJS 2.0 以后,取消了e.cancel = true; 拦截删除的功能,通过另外一种方式实现,重写键盘工具类commandHandler的canDeleteSelection,去拦截调用deleteSelection 实现取消删除的功能
 

		myDiagram.commandHandler.canDeleteSelection = function(e) { 
			//用例获取选中的节点或线 
			return myDiagram.selection.all(function(nodeOrLink) { 
				console.log(nodeOrLink.data); 
				//判断是否存在不允许删除的节点或线 
				if(nodeOrLink.data.text=="勘察设计"){ 
					console.log("根存在不允许删除的节点,取消删除"); 
					return false; 
				}else{ 
					return true; 
				} 
			}); 
		}

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值