在 HTML 中从 JSON 打印出相同格式的转义字符?
Print out same format with escape characters in HTML from JSON?
我在打印 HTML
中的 JSON 数据时遇到问题
var a = "We are the world.\n \tWelcome to our place.";
假设我有来自后端的 json 数据,我想打印出类似这样的内容。
<div>
We are the world.
Welcome to our place.
</div>
我试过使用 ng-bind-html 但它显示所有内联字符串。
谢谢。
你不能简单地做到这一点。因为 \n 和 \t 无法识别 Html 的编码。您必须先将其替换为可识别的 Html 编码。您可以通过以下方式完成此操作:
$scope.a = "We are the world.\n \tWelcome to our place."
$scope.a.replace(/(?:\r\n|\r|\n)/g, '<br />');
但是现在,如果您将此文本绑定到 Html,它将省略单词 Welcome 之前多余的 space,只留下一个 space.
因此,要解决此问题,您必须将此 Html 绑定到 pre 标记内。它将保留您的格式。
<pre>{{a}}<pre>
我在这里添加了一个演示:https://plnkr.co/edit/2twWjmWPCKGxcrh7QEgf?p=preview
您可以使用 style="white-space: pre"
让浏览器保留您的空格
如果你还需要自动换行,你可以使用white-space: pre-wrap
我在打印 HTML
中的 JSON 数据时遇到问题var a = "We are the world.\n \tWelcome to our place.";
假设我有来自后端的 json 数据,我想打印出类似这样的内容。
<div>
We are the world.
Welcome to our place.
</div>
我试过使用 ng-bind-html 但它显示所有内联字符串。
谢谢。
你不能简单地做到这一点。因为 \n 和 \t 无法识别 Html 的编码。您必须先将其替换为可识别的 Html 编码。您可以通过以下方式完成此操作:
$scope.a = "We are the world.\n \tWelcome to our place."
$scope.a.replace(/(?:\r\n|\r|\n)/g, '<br />');
但是现在,如果您将此文本绑定到 Html,它将省略单词 Welcome 之前多余的 space,只留下一个 space.
因此,要解决此问题,您必须将此 Html 绑定到 pre 标记内。它将保留您的格式。
<pre>{{a}}<pre>
我在这里添加了一个演示:https://plnkr.co/edit/2twWjmWPCKGxcrh7QEgf?p=preview
您可以使用 style="white-space: pre"
如果你还需要自动换行,你可以使用white-space: pre-wrap