2017-08-29 28 views
0

我目前在我的應用程序在這裏位於一個循環:全部更換↵新線角環

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

的對象代碼顯示了很多的文字,但隨着很多的↵符號。

我將如何去取代這些?

我已經試過

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

會是什麼,使這項工作的最佳方法是什麼?

回答

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 要角顯示HTML標籤結合u必須在初始化使用$sce服務和ng-bind-html="audit.objects | multiline"代替{{audit.objects | multiline}}

http://jsfiddle.net/c1qwg776/

+0

嘿卡羅爾,我一直在研究你發佈這個的第二個問題,我遇到了一個小問題,除了能夠找到回車鍵的代碼之外,我將回車鍵改爲了':'這隻替換了第一個冒號,即使有多個? – samnymr

+0

嗯..正則表達式應該找到並替換所有字符。請檢查我添加到我的答案jsfiddle。 –

+0

多煩人,我已經複製了幾乎所有的代碼,我也有同樣的問題,奇怪的...要標記爲正確的,因爲這確實起作用,必須弄亂我的代碼 – samnymr

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); 
     } 
    } 
}