2016-10-27 2 views
1

データバインディングを維持しながらinnerHtmlにバインドしようとしています。これは機能しません(出力{{myVar}})。私の本当のアプリでAngular2 innerHtmlバインディングはデータバインディングを中断します

@Component({ 
    selector: "test", 
    template: ` 
    <div [innerHtml]="myHtml"></div> 
    `, 
}) 
export class TestComponent{ 
    title = "My Title"; 
    myHtml: SafeHtml; 

    constructor(private sanitizer: DomSanitizer){ 
    this.myHtml = sanitizer.bypassSecurityTrustHtml("<h1>{{title}}</h1>"); 
    } 
} 

、myHtmlは(私がbypassSecurityTrustHtmlに必要とする理由である)SVGファイルの内容であり、しばしば変化し、私は私のテンプレートにそれを置くことができないように(それは20の異なるSVGから来ることができましたファイル)。

コンポーネントのtemplateUrlを動的に設定する方法があった場合は、私の問題も解決しますが、しばらくの間は検索しても可能ではないようです。

答えて

2

Angular2はHTMLを動的に処理しないため、{{}},[],()、...は動作しません。 このように追加されたHTMLがセレクタに一致した場合でも、コンポーネントまたはディレクティブは作成されません。

コンポーネントテンプレートに静的に追加されたマークアップのみが処理されます。

Equivalent of $compile in Angular 2は、本当に必要な場合のアプローチを示しています。

+2

あなたのリンクは、ありがとうございました(これと、あなたが答えてくれた、そして助けてくれた百の他の質問のために) – maxbellec

+1

あなたは大歓迎です:) –

関連する問題