我正在使用带有打字稿的Angular2。
我有一个可以很好地渲染 HTML 的管道。问题是DomSanitizer似乎停止了(单击)事件的工作。
当我检查 console.log (F12) 中的 HTML 时,(单击)代码似乎在那里并且没有被删除。
但是当我单击链接时,它什么也不做。
这是链接的一个示例(它在我的组件中调用一个函数):
<a (click)="recordLinkClick()" target="_blank" href="#">Test link</a>
这是管道:
import { Pipe } from '@angular/core';
import { DomSanitizer, SafeHtml, SafeStyle, SafeScript, SafeUrl, SafeResourceUrl } from '@angular/platform-browser';
@Pipe({
name: 'safe'
})
export class SafePipe {
constructor(protected _sanitizer: DomSanitizer) {
}
public transform(value: string, type: string = 'html'): SafeHtml | SafeStyle | SafeScript | SafeUrl | SafeResourceUrl {
switch (type) {
case 'html': return this._sanitizer.bypassSecurityTrustHtml(value);
case 'style': return this._sanitizer.bypassSecurityTrustStyle(value);
case 'script': return this._sanitizer.bypassSecurityTrustScript(value);
case 'url': return this._sanitizer.bypassSecurityTrustUrl(value);
case 'resourceUrl': return this._sanitizer.bypassSecurityTrustResourceUrl(value);
default: throw new Error(`Invalid safe type specified: ${type}`);
}
}
}
这是 HTML 行:
<div [innerHTML]="selectedArticle.body | safe: 'html'"></div>
如果您需要查看更多代码,请告诉我。