我有一个看起来像这样的字符串(很多空格,这就是它在我的服务器上的出现方式):
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"
我正在使用新的Angular 1.2.0
ngBindHtml并在我的控制器中处理它,如下所示:
$scope.care = $sce.trustAsHtml(care_description);
($scope.records[i].accordions
数组只是Angular-Bootstrap的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>
标签。< / p>
答案 0 :(得分:5)
所有ngBindHtml都不是转义标记。你这里没有标签。您可以将所有\r\n
替换为<br/>
。或者你可以写一个指令来为你做。或者只使用<pre>
代码。
答案 1 :(得分:2)
你所拥有的不是HTML,而是纯文本。所以你不应该使用ng-bind-html和trustAsHtml。只需在<pre>
块中显示值:
<pre>{{ care }}</pre>