在纸上取消突出显示所有 cellViews - jointjs

ICa*_*arp 1 javascript jointjs rappid

我们最近添加了 Jointjs 的突出显示功能,以向用户显示当前突出显示和选择的单元格视图。但是,如果用户点击外面,我们想要取消突出显示在纸上绘制的所有 cellView(s)。在调查了官方文档后,我们最终无法找到满足我们要求的解决方案。

突出显示 cellView(s) 的代码是:

this.paper.on('cell:pointerclick', (cellView: any) => {
    cellView.highlight();
});
Run Code Online (Sandbox Code Playgroud)

ICa*_*arp 5

为了解决这个问题,我们迭代显示在当前纸张(区域)上的所有 cellViews 并调用 unhighlight 函数。此逻辑放置在blank:pointerdown回调中 - 以便我们处理实际 cellView 之外的所有点击。

this.paper.on('blank:pointerdown', (evt, x, y) => {
               this.paper.findViewsInArea(this.paper.getArea()).forEach(cell => {
               cell.unhighlight();
             });
        });
Run Code Online (Sandbox Code Playgroud)

希望这可以帮助。