Как визуализировать угловые компоненты условно - PullRequest
0 голосов
/ 13 июня 2019

Предположим, у меня есть следующая структура в моем проекте.Он имеет один модуль для каждого клиента, который объявляет пользовательские компоненты, и общий модуль, который объявляет компонент по умолчанию, если у этого клиента нет реализаций для него.

/company-module-a/register-form-screen
/company-module-a/register-form-screen/part-1-form-component
/company-module-a/register-form-screen/part-2-form-component

/company-module-b/register-form-screen/
/company-module-b/register-form-screen/part-1-form-component
/company-module-b/register-form-screen/part-4-form-component

/common-module/register-form-screen/
/common-module/register-form-screen/part-1-form-component
/common-module/register-form-screen/part-2-form-component
/common-module/register-form-screen/part-3-form-component
/common-module/register-form-screen/part-4-form-component

Я хочу по умолчанию использовать общие компоненты, а затем использоватьКомпоненты компании, если в нем есть компоненты с таким же именем, то используется компонент компании, но это невозможно в Angular.Другое решение заключается во внедрении всех компонентов во все модули. Если модуль компании не отличается от общего модуля, достаточно просто расширить его, а затем модуль импортируется путем маршрутизации.Существуют ли другие решения для этой проблемы структуры, улучшающие повторное использование кода?Модуль компании определяется именем компании текущего аутентифицированного пользователя и хранится в локальном хранилище браузера.

1 Ответ

3 голосов
/ 13 июня 2019

Поскольку селекторы компонентов разрешаются угловым компилятором во время компиляции, вам нужна структурная директива, чтобы отложить разрешение компонента до времени выполнения.

Например, вы можете использовать *ngIf или *ngSwitch, чтобы выбрать, какой компонент визуализировать.

Обратите внимание, что этот подход требует объединения всех компонентов независимо от того, какие компоненты фактически используются во время выполнения. Если у вас много компонентов или вы заботитесь о размере комплектов, то лучшим вариантом будет составление отдельных комплектов для каждой компании.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...