P粉5510842952023-08-18 09:45:50
考虑绑定的函数的作用域和上下文是很重要的。
在你的情况下,testFunc函数是在你的Angular组件中定义的,但是它是从生成的HTML字符串中的内联onclick属性中调用的。这可能会导致作用域和上下文问题。
为了在Angular中正确地绑定动态生成的HTML中的事件和函数,你应该使用Angular的事件绑定机制。
将你的returnButtonGroup函数更新为返回Angular模板代码而不是原始的HTML字符串。使用Angular的(click)事件绑定来绑定testFunc函数。
returnButtonGroup(key: string): string { return `<i (click)="testFunc('${key}')" class="fa fa-wrench"></i>`; }
在HTML中使用
<div [innerHTML]="dynamicHtml"></div>
在你的component.ts中,创建一个属性来保存动态生成的HTML,并确保testFunc函数在组件内可访问。
dynamicHtml: string; constructor() { this.dynamicHtml = this.returnButtonGroup('someKey'); // 使用适当的键调用你的方法 } testFunc(key: string) { console.log(key); }