innerHTML не связывает ни одно угловое событие, поэтому оно не работает
чтобы это работало, вам нужно создать пользовательскую директиву, которая отвечает за навигацию по маршруту.
проверка рабочего образца - https://stackblitz.com/edit/skdroid-innerhtml-routing
пользовательская директива - CustomRouteDirective
import { Directive, ElementRef, HostListener } from '@angular/core';
import { Router } from '@angular/router';
@Directive({
selector: '[appCustomRoute]'
})
export class CustomRouteDirective {
constructor(private el: ElementRef, private router: Router) { }
@HostListener('click', ['$event'])
public onClick(event) {
if (event.target.tagName === 'A') {
this.router.navigate([event.target.getAttribute('href')]);
event.preventDefault();
} else {
return;
}
}
HTML-код - <div appCustomRoute [innerHTML]="sampleHTML"></div>