Угловые библиотеки шаблонов - PullRequest
0 голосов
/ 01 мая 2018

Так что в WPF я могу создать библиотеку шаблонов XAML и ссылаться на нее через мой код. Есть ли похожий способ сделать это в Angular? Создать HTML-файл с общими шаблонами, которые я хотел бы использовать, и ссылаться на эти шаблоны в компонентах?

1 Ответ

0 голосов
/ 01 мая 2018

Шаблоны должны обрабатываться угловым компилятором, поэтому нет хорошего способа сделать то, что вы просите, если HTML не включен в какой-то другой компонент вашего приложения (или если вы не используете более продвинутые «хаки», которые будут скомпилируйте этот HTML-файл с угловым компилятором на лету ... или просто вставьте HTML-код напрямую, но это небезопасно).

Вы можете создать компонент с именем «Библиотека шаблонов» или что-то подобное, и в шаблон этого компонента вы можете включить набор тегов ng-template, каждый из которых определяет каждый отдельный шаблон, на который вы хотите сослаться позже в своем коде. Вы можете получить TemplateRef для каждого из этих элементов ng-template, а затем использовать их где угодно в вашем приложении.

Я сделал нечто похожее в одном из моих приложений, я написал директиву, которая прикрепляется к элементам ng-template, которая автоматически получает TemplateRef элемента и отправляет его в службу, которая хранит все различные TemplateRefs. Затем в другом месте моего приложения я могу просто использовать этот сервис для доступа ко всем моим доступным шаблонам и вставлять их везде, где они мне нужны. Требуется немного больше подготовительной работы, чем просто ссылка на внешний HTML-файл, но он выполняет свою работу. Вам просто нужно убедиться, что вы включили компонент TemplateLibrary где-то в вашем приложении, чтобы компилятор обрабатывал эти теги шаблона (даже если он не будет отображать их, пока вы явно не вставите их в другое место).

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