如何检查不是基于类型而是基于模板名称的 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
是模板中规定的名称为 Activity
或 Workitem
的基本形状。
类型也可以直接通过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'){}
我想在 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
是模板中规定的名称为 Activity
或 Workitem
的基本形状。
类型也可以直接通过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'){}