Как сделать компонент с шаблоном времени выполнения в Angular? - PullRequest
1 голос
/ 24 марта 2020

Мне нужно закодировать страницу, шаблон которой будет определен на сервере. Страница делает HTTP GET на сервер и получает строку, которая будет шаблоном.

Я пытаюсь следовать примеру, найденному здесь: runtime-content.component.ts

Однако в этом шаблоне у меня будут ссылки на другие компоненты, такие как <app-hello></app-hello>, и когда я пытаюсь сделать это, я получаю 'app-hello' is not a known element.

Как я могу сказать этому компоненту использовать определенный модуль или распознавать определенные компоненты?

enter image description here

1 Ответ

0 голосов
/ 25 марта 2020

Вы просто должны включить ссылки на компоненты здесь (declarations):

@NgModule({ imports: [CommonModule, RouterModule], declarations: [decoratedCmp, ...declarations] })
class RuntimeComponentModule {}

И для отправки данных добавить на compileTemplate

(this.componentRef.instance as any).data = this.data;

Так что ваша обертка будет иметь data доступно для использования в вашем шаблоне.

А в вашем динамическом c шаблоне вы можете использовать data для отправки информации другим компонентам:

<app-something [content]="data?.content"></app-something>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...