改行コードをHTMLの<br>に置換して表示する方法
改行コードをAngularJSの「filter」を使って画面表示時に<br>に置換する方法です。
コード
JavaScript
angular.module('myApp', ['ngSanitize'])
.filter("replaceHtmlLine", function(){
return function (str, exp) {
return str.replace(/\\n|\r\n|\r|\n/g, "<br>");
};
});
HTML
<div ng-bind-html="message | replaceHtmlLine"></div>
ポイントは「ngSanitize」モジュールを利用していることと、変換後の文字列を「ng-bind-html」でバインドしている点です。
実際の表示
あいうえお\\nかきくけこ\nさしすせそ
という文字列をfilterを通して表示すると、
あいうえお
かきくけこ
さしすせそ
かきくけこ
さしすせそ
のように表示されます。