Вставка HTML (с угловыми 2 директивами) с сервера в DOM

У меня есть ~2000 строк HTML-кода, которые я могу получить с моего Java-сервера. Этот HTML-код также содержит угловые директивы, такие как ngIf* а также (click) а также [ngClass], Когда я пытаюсь отобразить этот HTML в моем клиенте с помощью следующих методов:

<div [innerHTML]="htmlData"></div>
<div innerHTML="{{ htmlData }}"></div>

Я вижу, что все элементы HTML отображаются правильно, но ни одна из угловых директив не работает (например, некоторые из HTML должны быть скрыты с помощью *ngIf но они не... и никто из (click) события работают. Что я могу сделать, чтобы это исправить?

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

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

Вставка HTML с сервера в DOM с помощью angular2 (общие манипуляции с DOM в Angular2)

Угловое связывание HTML

1 ответ

К сожалению, это невозможно. InnterHTML поместит код HTML там - не угловой. Угловой код должен быть скомпилирован заранее - процесс, в котором все директивы и html magic заменены простыми JS.

Вы можете преобразовать свой угловой код в обычный html путем рендеринга на стороне сервера с помощью узла js.

Вы можете узнать больше о рендеринге на стороне сервера здесь: https://angular.io/guide/universal

Но точно так же вы можете использовать JAVA и любой популярный шаблонизатор для JAVA-серверов, если вы отправите свои параметры в запросе http.

Другие вопросы по тегам