我有一个看起来像这样的字符串(很多空格,这就是它在服务器上的输出方式):
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>
标记。