2013-08-16 35 views
2

進出口試圖使通過角過濾調用對決預覽減價編輯在angularJS,如何渲染包含標記爲標記(轉義)模型

<textarea ng-model="data.text"></textarea> 
<div class="preview">{{data.text|markdown}}</div> 

我設法降價的標記轉換上飛入HTML,但當呈現在屏幕上的實際輸出是這樣的:

<h1 id="thisisaheader">This is a header</h1>

它看起來像結果標記被逃脫。我該如何渲染它未轉義?

回答

5

您需要使用ng-bind-html-unsafe

<div class="preview" ng-bind-html-unsafe="data.text|markdown"></div> 

這是給你保證的內容是值得信賴的。

如果您碰巧使用了Angular 1.2 RC1,那麼您應該使用ng-bind-html以及新的Strict Contextual Escaping服務(簡稱$sce)。

+0

Thx爲這個邁克爾,效果很好。只是好奇,這意味着我將不得不將data.text綁定到包裝div,有什麼辦法可以保留{{data.text | markdown}}用法嗎?也許在我的過濾器中設置一些東西 –

+1

我不認爲這是可能的,因爲'ng-bind-html-unsafe'指令通過設置元素的innerHTML屬性來應用它的表達式結果。不過,您可以使用任何您喜歡的標籤作爲包裝。 –