v-html无法正确输出HTML

时间:2019-12-15 15:17:36

标签: html json vuejs2

我利用了一个包含JSON的API,该JSON具有从CMS预取的数据。部分JSON如下所示:

"content": "<p><em>We're looking for a pro-active, analytical, commercially minded and ambitious deal-closer who loves to work - and play - hard to join our Company.

然后我将此数据传递给子组件,然后使用v-html进行渲染。我希望这能输出带有样式和语义的HTML标签。但是,它将HTML标签呈现为纯文本:

<p><em/>We're looking for a pro-active, analytical, commercially minded and ambitious deal-closer who loves to work - and play - hard to join our Company.

有人知道我在做什么错吗?我应该解析JSON吗?我应该先将原始JSON解码为HTML标签吗?

1 个答案:

答案 0 :(得分:1)

与JSON无关;与您的网络服务有关的所有事情都无济于事,给您未解析的HTML。

您将不得不自己解码这些HTML实体。

一个常见的技巧是将未解析的HTML馈送到非DOM元素,然后通过textContent读回,这将为您提供解析后的版本。

let p = document.createElement('p');
p.innerHTML ='&lt;p&gt;'
console.log(p.textContent); //"<p>"