Вопрос

Angular. Конфликты компонентов

Добавил ангулар компонент согласно инструкции

https://academy.creatio.com/docs/7-18/developer/development_tools/packa…

 

Все работает.

НО! Если добавить несколько разных компонентов таким способом, то работает только первый, который открылся. При открытии второго уже ошибка.

 

В процессе анализа выяснилась причина:

При подгрузке и срабатывании кода во втором компоненте вызывается метод ngDoBootstrap из первого модуля. Соответственно второй компопент не регистрируется через createCustomElement.

Возможная причина такого поведения:

Билд компонента добавляет в main.js все зависимости в том числе собранное ядро ангулара.

При этом в стандартных компонентах (чаты, диаграма зависимостей, сводная таблица и т.д.) ядра в файле нет, но в bootstrap.js прописана зависимость от ядра (deps: ["ng-core"]).

 

Как собрать компонент правильно, чтобы в нем не было кода ng-core, и указать зависимость от него, как в стандартных Terrasoft компонентах?

Нравится

1 комментарий

Владислав, добрый день!

А как именно вы зарегистрировали компоненты?

Похоже ответ на ваш вопрос стоит искать в документации  Angular Elements, поскольку именно эта функциональность и используется в приложении. Рекомендую ознакомиться с этими обсуждениями:

https://stackoverflow.com/questions/54108714/multiple-custom-element-de…

https://stackoverflow.com/questions/39756192/what-is-entrycomponents-in…;

Показать все комментарии