Как проверить элемент JointJS не по типу, а по имени трафарета

Я хочу, чтобы в Rappid выполнялась проверка при вставке элемента внутрь Paper, если этот элемент Workitem или Activity, но единственная подобная проверка, которую я нашел в документации Rappid, это:

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

который проверяет, является ли этот элемент ссылкой или нет. Есть ли способ проверить не на основе 'type', а на основе 'name' (где «имя» - это одно из имен трафаретов основных фигур)?

Я имею в виду, как я могу проверить, является ли элемент фигурой с трафаретным именем Activity или Workitem?

И где, пожалуйста, я могу выполнить эту проверку внутри своего кода, так как я пока пытаюсь при создании своего halo вставить одну строку кода, и я не могу (например, я даже не могу сделать это cell.set('wi_name', "ACTIVITY");, чтобы установить поле инспектора с именем wi_name, имеющим имя Activity)


person Reputated_Enginius    schedule 16.09.2016    source источник


Ответы (2)


Я решил свою проблему следующим образом:

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

Где basic.Rect — это основная форма с именем Activity или Workitem, как указано в трафарете.

person Reputated_Enginius    schedule 20.09.2016

Тип также можно получить непосредственно через атрибуты объекта:

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

Обратите внимание: если вы просматриваете объект ElementView (например, используете this в событиях, когда расширяется ElementView для создания ограничений), вам необходимо получить доступ к model:

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

Or:

if (elem.model.get('type') === 'basic.Rect'){}
person CPHPython    schedule 27.12.2017