Ich benutze Angular2 mit Typoskript.Angular2 stoppt (klicken) funktioniert bei Verwendung von DomSanitizer
Ich habe eine Pipe, die in Bezug auf das Rendern der HTML-Fein funktioniert. Problem ist die DomSanitizer scheint das (Klick-) Ereignis von der Arbeit zu stoppen.
Wenn ich den HTML-Code in der console.log (F12) überprüfe, scheint der (Klick-) Code dort zu sein und nicht entfernt zu werden.
Aber wenn ich auf den Link klicke, tut es nichts.
Dies ist ein Beispiel der Verbindung (es ruft eine Funktion in meiner Komponente):
<a (click)="recordLinkClick()" target="_blank" href="#">Test link</a>
Dies ist das Rohr:
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}`);
}
}
}
Dies ist die Linie der HTML:
<div [innerHTML]="selectedArticle.body | safe: 'html'"></div>
Lassen Sie mich wissen, wenn Sie mehr Code sehen müssen.
Haben Sie gefunden, eine Lösung für Ihr Problem? Ich habe das gleiche Problem und bekomme keine Lösung. – user3739018