2017-04-18 18 views
1

テンプレートの[innerHTML]タグを使用して、typescriptでいくつかのhtmlを入力する必要があります。角2 - [innerHTML]を使用したときのクリック機能の削除

私はHTMLにクリック機能を入れしようとしています

:言って

status = "<img src='assets/hello.png' (click)='hello()' />"; 

しかし、クリック機能がコンソールにはぎ取らます:

WARNING: sanitizing HTML stripped some content (see http://g.co/ng/security#xss). 

私は少数の人々が使用して言及した参照"DomSanitizer"しかし、私の正確な問題を解決する例は見つかりません。

答えて

5

角度が外れていますすべて[innerHTML]を使用している場合は角型です。あなたがそのような何かが必要な場合は

Equivalent of $compile in Angular 2
で説明するように、あなたは、実行時にコンポーネントを作成することもできますし、あなたの答えのための

constructor(private elRef:ElementRef, private cdRef:ChangeDetectorRef) {} 

someMethod() { 
    this.status = "<img src='assets/hello.png' (click)='hello()' />"; 
    this.cdRef.detectChanges(); 
    this.elRef.nativeElement.querySelector('img').addEventListener('click', this.hello.bind(this); 
} 
+0

おかげのようにイベントハンドラを追加することが不可欠コードを使用することができます。私はエラーを取得しています "プロパティ 'querySelector'は、 'ElementRef'型に存在しません。 –

+0

申し訳ありません、' nativeElement.'を逃しました –

+0

ありがとうございます。オブジェクトを渡すことができますか? –

関連する問題