我是新来的有角度的人,正在尝试找出解决这个问题的方法。在我的.ts文件中,我有类似var info = "Please Download File" + "<a (click)=downloadFile()>Click Here</a>
的字符串。锚标记是动态添加到函数中的。我正在尝试触发downloadFile()函数,但不确定如何解决此问题吗?当我检查元素时,它不显示(单击)功能
答案 0 :(得分:1)
我同意@Kokodoko的说法,可能有更好的方法来完成您想要的事情。但是,如果要注入HTML,则需要对其进行清理并使用innerHtml
。例如,在您的打字稿文件中,您将需要执行以下操作:
import { Component } from '@angular/core';
import { DomSanitizer } from '@angular/platform-browser';
@Component({
selector: 'my-app',
templateUrl: './app.component.html',
styleUrls: [ './app.component.css' ]
})
export class AppComponent {
constructor(protected _sanitizer: DomSanitizer) {}
public info = "Please Download File" + "<a (click)=downloadFile()>Click Here</a>"
safeHtml(html) {
return this._sanitizer.bypassSecurityTrustHtml(html);
}
}
和您的HTML
<div [innerHTML]="safeHtml(info)"></div>
我创建了一个可以正常使用的StackBlitz。