2016-11-02 7 views
1

私はリモートサーバーから投稿のデータを取得していますが、投稿のデータにはstyleclassという属性(WYSIWYGエディタから生成)のhtmlが含まれています。角度2のテンプレートのように、取得したhtmlを表示するにはどうすればよいですか?

フィルタリングやサニタイズせずに、そのままHTMLデータをレンダリングしたいとします。

私はこの方法を使用してみました:

<div [innerHTML]="post.body"></div> 

しかし角度は、HTMLからstyle属性を削除しています。

(たとえ危険であっても)html属性を保持する方法はありますか?

私はとにかくこのようにしなければならないと思います
+1

http://stackoverflow.com/questions/ 37076867/in-rc-1-some-styles-cant-be-add-binding-syntax/37076868#37076868 –

+0

私は 'DomSanitizer'を使います。チャームのように働いた! –

答えて

1

import { Component } from '@angular/core'; 
 
import { DomSanitizationService, SecurityContext, SafeHtml } from '@angular/platform-browser'; 
 

 
@Component({ 
 
    selector: 'my-app', 
 
    template: ` 
 
    <div [innerHTML]="_htmlProperty"></div> 
 
    ` 
 
}) 
 
export class AppComponent { 
 
    
 
    _htmlProperty: string = 'AAA<input type="text" name="name">BBB'; 
 
    
 
    constructor(private _sanitizer: DomSanitizationService){ } 
 
    
 
    public get htmlProperty() : SafeHtml { 
 
    return this._sanitizer.sanitize(SecurityContext.HTML, this._htmlProperty); 
 
    } 
 

 
}

あなたは、角1のようにHTMLをサニタイズする必要が

*

関連する問題