Преобразовать новую строку /n в разрыв строки в угловых
У меня есть строка, которая содержит символ новой строки /n. Попытка отобразить
строка. Вместо того, чтобы брать / n как новую строку, он отображает '/n' как текст.
$scope.myOutput = " Hello /n"
{{ myOutput | textFormat }}
Обязательно -> Здравствуйте (на html странице)
Пытался:
app.filter('textFormat', function() {
return function(x) {
return x.replace(/\\n/g, '<br/>');
}
Пробовал стили CSS, такие как пробел: pre;
3 ответа
Это не заменяет его, но вы можете использовать атрибут CSS white-space: pre-line;
для рендеринга \n в браузере: https://developer.mozilla.org/en-US/docs/Web/CSS/white-space
div {
white-space: pre-line;
}
<div>Foo
Bar
Baz Foo
Bar
Baz
</div>
в Angular вы можете легко преобразовать текст в исходный формат, введя его так:
составная часть:
this.myText = 'This is line one\nThis is line 2\nAnd here is 3'
html:
<div [innerText]='myText'></div>
1 - переписать свой фильтр следующим образом:
.filter('textFormat', function() {
return function (x) {
return x.replace(new RegExp('\/n', 'g'), '<br/>');
}
})
2 - в вашем html вы должны использовать следующий синтаксис:
<span ng-bind-html="myOutput | textFormat"></span>
куда myOutput
является $scope.myOutput = ' Hello /n'