将全部↵替换为角度环

时间:2017-08-29 09:59:01

标签: angularjs

我的应用程序中有一个循环位于此处:

<tr ng-repeat="audit in audctrl.audits | orderBy:'-created_at'">
  <td>
    {{audit.objects}}
  </td>
</tr>

对象的代码显示了很多文本,但有很多↵符号。

如何更换这些产品?

我试过了

{{audit.object.replace(/\u21B5/g,'<br/>')}}

使这项工作的最佳方法是什么?

2 个答案:

答案 0 :(得分:3)

我建议你写一个角度过滤器。例如:

myApp.filter('multiline', function () {
    return function(text) {
        return text.replace(/\n/g, '<br>');
    }
});

然后用管道调用它:

<tr ng-repeat="audit in audctrl.audits | orderBy:'-created_at'">
  <td>
    {{audit.objects | multiline}}
  </td>
</tr>

@Edit 我不确定你的新行字符代码,但你可以很容易地改变它。角度滤波器很好,因为它们可以在应用的其他部分重复使用。

@ EDIT2 要在Angular绑定中显示html标记,您必须使用$sce服务和ng-bind-html="audit.objects | multiline"而不是{{audit.objects | multiline}}

http://jsfiddle.net/c1qwg776/

答案 1 :(得分:0)

在初始化时将其写入控制器:

for(var i=0;i<audctrl.length;i++){
     for(var j=0;j<audctrl[i].objects.length;j++){
        if(audctrl[i].objects.charCodeAt(j)===10){
            var temp=audctrl[i].objects.substring(0,j);
            temp+="<br/>";
            audctrl[i].objects= temp+audctrl[i].objects.substring(j+5,audctrl[i].objects.length-1);
        }
    }
}