Попытка заставить ngbTooltip работать в безопасных пределах innerHTML.Сначала я подумал, что это не сработает, потому что вставляемые данные извлекаются асинхронно, а представление рендеринга + связывание с функциональностью ngB уже сделано, поэтому реализовано разрешение маршрутов.Однако все разрешается до того, как представление отрисовывается, однако .. всплывающая подсказка все еще не работает.
Обратите внимание (!), Что, когда подсказка жестко запрограммирована в соответствующем шаблоне, все работает, как и другие ngB-функциональность и т.д ...
Подсказка - всего лишь тривиальный пример.Мне нужно больше вещей для работы, таких как модалы, PopOvers, ссылки на функции в компоненте.
Посмотрел в Dom после рендеринга и там просто обычный HTML, без изолированной области видимости или что-то в этом роде.
Компонент
@Component({
selector: 'app-home',
templateUrl: './home.component.html',
styleUrls: ['./home.component.scss']
})
export class HomeComponent {
quote: string;
isLoading = false;
public sanitizedHtml: any;
constructor(private portareServices: PortareServices,
private sanitizer: DomSanitizer,
private route: ActivatedRoute
) {
this.sanitizedHtml = this.sanitizeHTMLstring(this.route.snapshot.data.content.pageContent);
}
public sanitizeHTMLstring(htmlStr: string) {
return this.sanitizer.bypassSecurityTrustHtml(htmlStr);
}
}
Маршрутизация
const routes: Routes = [
{
path: 'content',
resolve: {
content: ContentResolve
},
component: HomeComponent,
pathMatch: 'full'
},
{
path: '**',
redirectTo: '',
resolve: {
content: ContentResolve
},
component: HomeComponent,
pathMatch: 'full'
}
];
@NgModule({
imports: [RouterModule.forRoot(routes)],
exports: [RouterModule],
providers: []
})
export class AppRoutingModule { }
Пример JSON с HTML-кодом для вставки
{
"pageContent": "<button type=\"button\" class=\"btn btn-outline-secondary mr-2\" placement=\"bottom\" [ngbTooltip]=\"htmlContent\">Tooltip on top<\/button>"
}