向动态HTML <a>标签添加角度(点击)事件?

时间:2019-12-02 21:33:42

标签: angular typescript

我是新来的有角度的人,正在尝试找出解决这个问题的方法。在我的.ts文件中,我有类似var info = "Please Download File" + "<a (click)=downloadFile()>Click Here</a>的字符串。锚标记是动态添加到函数中的。我正在尝试触发downloadFile()函数,但不确定如何解决此问题吗?当我检查元素时,它不显示(单击)功能

1 个答案:

答案 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