Я бы хотел использовать ссылку на шаблон в сервисе. Например:
// A component template that I want to use. Can be located anywhere.
<ng-template #announcement_tpl let-data="data">
<div>{{data.title}}</div>
<div>{{data.message}}</div>
</ng-template>
// Called from a callback in an injectable Service, outside the component class.
this.notification_service.template(announcement_tpl)
Я только что реализовал это решение . Это работает, но я не уверен, что это хорошая практика. Обратите внимание, что this.notification_service.template
вызывается не из компонента, а из-за обратного вызова в службе, и поэтому шаблон нельзя просто передать этому методу. Я думаю, что идеальным решением было бы импортировать компонент и получить шаблон от компонента (каким-либо образом), если, конечно, нет лучшего способа сделать это.