TLDR :
Если вы хотите визуализировать HTML, содержащий угловые компоненты, вы должны создать / скомпилировать их динамически во время выполнения .
По умолчанию Angular очищает все, что попадает в представление.Для отображения HTML в вашем шаблоне вы должны использовать:
<span [innerHTML]="text | mypipe: 'lo':'secondary'"></span>
Ваш канал должен вернуть SafeHtml
:
@Pipe({
name: 'mypipe'
})
export class MyPipe implements PipeTransform {
constructor(private sanitizer: DomSanitizer) {}
public transform(value, params): SafeHtml {
//do whatever your pipe does and then
return this.sanitizer.bypassSecurityTrustHtml(somethingToReturn);
}
}
См. этот вопрос .
Вы также можете написать общий канал, как в этой статье , а затем просто использовать его:
<span [innerHTML]="text | mypipe: 'lo':'secondary' | safe: 'html'"></span>
Но поскольку ваша разметка содержит другой угловой компонент, он не будет работать.Это будет работать со стандартной html
разметкой.Вы хотите найти способ не только визуализировать некоторый html
, но и compile
ваш шаблон динамически и динамически создавать результирующий компонент.Что-то вроде этих строк .