正如在这个plunker中所看到的那样,我正在动态地向一个元素添加HTML,其实际代码如下:
@Component({
selector: 'my-comp',
template: `<span [innerHTML]="link"></span>`,
}) export class MyComponent {
private linkContent = '<a routerLink="/my-route">GoTo Route</a>';
private link;
constructor(sanitizer: DomSanitizer) {
this.link = sanitizer.bypassSecurityTrustHtml(linkContent);
}
}
这导致DOM中添加了
<a routerLink="/my-route">GoTo Route</a>
,但是Angular不知道这个元素上的routerLink
指令,并且不会"绑定"它。因此,当您单击链接时,它会导致完全重新加载并重新引导(在plunk中不起作用,只会给出404错误)。问题:如何告诉Angular遍历DOM(或其部分,甚至单个元素),如果需要,则执行组件初始化?
routerLink
而不是在模板中使用它呢? - brians69