我有一個看起來像這樣的字符串(大量的空白,這是它只是怎麼弄出來我的服務器上):AngularJS 1.2的ngBindHtml不處理/ R&/ N
var care_description = "MATERIAL\r\n \r\n 56% Acrylic, 24% Rayon, 20% Polyester\r\n \r\n CARE\r\n \r\n Machine Wash, Gentle Or Delicate"
我「M使用新Angular 1.2.0
ngBindHtml和像這樣處理它在我的控制器:
$scope.care = $sce.trustAsHtml(care_description);
(該$scope.records[i].accordions
陣列僅僅是角引導的手風琴模塊的包裝)。
當我把這個變成我的看法(通過一個簡單的<p ng-bind-html="care"></p>
)它被渲染,像這樣:
MATERIAL 56% Acrylic, 24% Rayon, 20% Polyester CARE Machine Wash, Gentle Or Delicate
當它應該是:
MATERIAL
56% Acrylic, 24% Rayon, 20% Polyester
CARE
Machine Wash, Gentle Or Delicate
是唯一的解決辦法在這裏對我來說,做一個正則表達式替換找到\r\n
的所有實例並將其替換爲<br />
?
編輯:我應該提到,雖然在上面的例子中,沒有HTML
標籤,經常會出現,所以我需要在這裏使用ngBindHtml
而非<pre>
標籤。
對不起,請編輯上面 - 而在這個例子中,不存在HTML標籤,往往會有一些有,所以我必須使用'ngBindHtml' – Jascination
然後好像就像你有一個設計問題:或者值是HTML,並且換行符也應該是HTML格式,或者它是純文本格式,並且它不應該包含HTML。我會修正這些數據,以及生成這些數據的過程,而不是處理這個不一致的地方。 –
使用'Cheerio'(節點相當於jQuery)從網站上抓取數據,只需抓取一個元素並獲取'.html()'。那麼你會建議在數據收集階段進行一次搜索替換:將'/ r/n'轉換成換行符HTML元素,這樣就可以保持一致? – Jascination