0

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

 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.0ngBindHtml 并在我的控制器中处理它,如下所示:

    $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>标签。

4

2 回答 2

6

ngBindHtml 所做的一切都不是转义标签。你在这里没有标签。你可以全部替换\r\n<br/>. 或者你可以写一个指令来为你做这件事。或者只是使用<pre>标签。

于 2013-11-03T09:28:04.167 回答
4

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

<pre>{{ care }}</pre>
于 2013-11-03T09:29:28.520 回答