AngularJS 1.2的ngBindHtml不处理/ r& / N

时间:2013-11-03 09:22:22

标签: javascript angularjs ng-bind-html

我有一个看起来像这样的字符串(很多空格,这就是它在我的服务器上的出现方式):

 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>

2 个答案:

答案 0 :(得分:5)

所有ngBindHtml都不是转义标记。你这里没有标签。您可以将所有\r\n替换为<br/>。或者你可以写一个指令来为你做。或者只使用<pre>代码。

答案 1 :(得分:2)

你所拥有的不是HTML,而是纯文本。所以你不应该使用ng-bind-html和trustAsHtml。只需在<pre>块中显示值:

<pre>{{ care }}</pre>