2017-08-10 162 views
1

綁定HTML代碼串我有HTML代碼的組件變量象下面這樣:對角2模板

import { Component } from '@angular/core'; 

@Component({ 
    selector: 'app-root', 
    template: `Hi <div [innerHTML]="name"></div>`, 
    styleUrls: ['./app.component.css'], 
    styles: [` 
    .highlight { 
     background-color: yellow; 
    } 
    `], 
}) 
export class AppComponent { 
name :string ="dude ! <input type='text'/>"; 
} 

它顯示等的輸出「嗨夥計!」但是沒有文本框。如何使用組件變量顯示文本框綁定?

+0

如果您檢查它,它會在瀏覽器中顯示什麼? –

+0

在瀏覽器中檢測沒有文本框ctrl代碼,只是「嗨

dude
」 –

回答

2

此代碼不安全。所以,渲染輸入元素默認是不允許的。您需要使用DomSanitizer允許它:

constructor(sanitizer: DomSanitizer) { 
    this.name = sanitizer.bypassSecurityTrustHtml(this.name); 
} 

見,說明這個plunker sample

-1

在模板中,嘗試:

<div [innerHTML]="name"> 
    <input type='text'/> 
</div> 

,並從名稱中刪除變量輸入的標籤。如果你想要數據綁定,請考慮在輸入標籤上使用ngModel。