我的应用程序中有一个循环位于此处:
<tr ng-repeat="audit in audctrl.audits | orderBy:'-created_at'">
<td>
{{audit.objects}}
</td>
</tr>
对象的代码显示了很多文本,但有很多↵符号。
如何更换这些产品?
我试过了
{{audit.object.replace(/\u21B5/g,'<br/>')}}
使这项工作的最佳方法是什么?
答案 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}}
答案 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);
}
}
}