如何检查不是基于类型而是基于模板名称的 jointJS 元素

How to check a jointJS element not based on type but on stencil name instead

我想在 Rappid 中 在 Paper 中插入元素时进行检查,如果这个元素是 Workitem 或 Activity 但我在 Rappid 中发现的唯一类似检查文档是:

if (cell.get('type') !== 'link'){//Do something}

检查此元素是否为 link。有什么方法可以不基于 'type' 而是基于 'name' 进行检查(其中 'name 是基本形状的 Stencil 名称之一)?

我的意思是我将如何检查一个元素是具有 Stencil 名称 Activity 还是 Workitem 的形状?

我在哪里可以在我的代码中执行此检查,因为到目前为止我在创建 halo 时尝试插入一行代码,但我不能。(e.x . 我什至不能这样做 cell.set('wi_name', "ACTIVITY"); 来设置名称为 wi_name 的检查器字段 Activity)

我这样解决了我的问题:

if (cell.get('type') === 'basic.Rect'){}

其中 basic.Rect 是模板中规定的名称为 ActivityWorkitem 的基本形状。

类型也可以直接通过object attributes:

获取
if (cell.attributes.type === 'basic.Rect'){}

请注意,如果您正在查看 ElementView 对象(例如,在 extending ElementView to create constraints 的事件中使用 this),您需要访问 model:

if (elem.model.attributes.type === 'basic.Rect'){}

或:

if (elem.model.get('type') === 'basic.Rect'){}