gpt4 book ai didi

javascript - 使用innerHTML Angular时将点击事件绑定(bind)到外部内容

转载 作者:行者123 更新时间:2023-12-01 03:22:08 25 4
gpt4 key购买 nike

是否可以绑定(bind)到来自外部内容的事件。内容通过 innerHTML 引入

我有下面的代码,我可以抓取外部内容并将其显示在我的应用程序中。我正在尝试监听 <a> 的 onClick 事件标签。 <a>是一个路由重定向。监听应该驻留在我的应用程序中,因为我想在路由到新路线之前做一些其他事情。

我尝试过设置 handleClick 函数,但我认为这不是正确的方法。

我还想也许使用 ElementRef - 在这种情况下#view但在这种情况下 jquery light 会更好吗?

@Component({
selector: 'overview-details',
template: `
<h2>{{ title }}</h2>
<div #view [innerHTML]="regCode | sanitizeHtml"></div>
`
})

ngOninit() {
this.regcode = `
<div>
<h1>RegCode Content</h1>
<a class="link" (click)="handleClick()">Link</a>
</div>
`;
}

//within controller
handleClick(){
// do some stuff
// then route
router.navigate([somewhere....]);
}

最佳答案

Angular 不会处理通过 [innerHTML]="..." 或任何其他方式添加的 HTML。像(click)="..." 这样的绑定(bind)在静态添加到组件模板时才有效。

您可以使用

constructor(private elRef:ElementRef) {}

ngAfterViewInit() {
this.elRef.nativeElement.querySelector('a.link').addEventListener('click', this.handleClick.bind(this));
}

关于javascript - 使用innerHTML Angular时将点击事件绑定(bind)到外部内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45119338/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com