Angular: как переопределить шаблон компонента без написания нового компонента - PullRequest
0 голосов
/ 13 января 2019

Я ищу способ использовать мои компоненты, заменяя стандартные шаблоны на пользовательские, но при этом сохраняя совместимость с AOT.

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

Цель : если вы используете my-component и хотите заменить его оригинальный шаблон, вам просто нужно создать шаблон с именем overrides/my-component.html в папке, в которой размещен родительский компонент.

Возьмите, например, компонент ad-banner , используемый в официальном примере Dynamic Component Loader *1015* Angular: в этом примере hero-job-ad и hero-profile Компоненты просто предназначены для замены исходного шаблона в определенном контексте. Я рассматриваю этот код как квазиконфигурацию, поэтому я хотел бы предоставить некоторые соглашения по нему.

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

1 Ответ

0 голосов
/ 13 января 2019

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

Другой вариант - использовать динамические компоненты. https://blog.angularindepth.com/here-is-what-you-need-to-know-about-dynamic-components-in-angular-ac1e96167f9e

...