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

 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>标记。

最佳答案

ngBindHtml所做的所有操作都不是转义标签。您在这里没有标签。您可以将所有\r\n替换为<br/>。或者,您可以编写一条指令来为您执行此操作。或者只使用<pre>标记。

09-25 18:08