v-html 中的 Vue.js <pre> 标签

标签 vue.js vuejs2

我在 v-html 元素中显示来自 ajax 的内容。内容包含一个“pre”标签,我想按原样显示。

组件:

<div v-html="content"></div>

内容示例:

<h1>Title</h1>
<pre>
    <p>Hello</p>
</pre>

我得到的:

Title

Hello

我想得到什么:

Title

<p>Hello</p>

有办法实现吗?还是 v-html 不可能?

编辑:

我从表单(所见即所得)创建内容。在保存内容之前,它是用 he.js 编码的,所以它看起来像:

&lt;h1&gt;Title&lt;/h1&gt;
&lt;pre&gt;
&lt;p&gt;Hello&lt;/p&gt;
&lt;/pre&gt;

在用我的 ajax 函数得到它之后,我用 he.js 编码它得到:

<h1>Title</h1>
<pre>
    <p>Hello</p>
</pre>

最佳答案

试试这个内容:

<h1>Title</h1>
<pre>
    &lt;p>Hello&lt;/p>
</pre>

因此,您要么必须对标签进行转义,要么将 pre 标签的内容与其余 HTML 内容分开。

我个人会做这样的事情:

<div>
<h1>{{content.title}}</h1>
<pre>
    {{content.code}}
</pre>
</div>

在您的 data 中,您将拥有 content 对象:

content: {
 title: 'Title',
 code: '<p>Hello</p>'
}

但我不知道您的确切用例以及您内容的 HTML 结构是否可以更改。

关于v-html 中的 Vue.js <pre> 标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43228646/

相关文章:

javascript - 如果我去 '/contact' ,我想保留以前的路线 View 但显示模态

javascript - Vue 允许在任何地方使用组件,而不仅仅是在 #app 中

javascript - 有条件地加载 vue-router

JavaScript 本地存储 : prevent invalid tokens

javascript - JSON对象数组不为空但无法使用foreach迭代,显示零长度

javascript - 从vue js中的多选框中检索选定的值

javascript - 声明其他计算属性无法访问的计算属性?

javascript - 我的自定义 ShopWare 6 Javascript 插件中未定义“Vue”

typescript - 如何在 Vue 中异步加载 vuetify 下拉(v-select)项目

javascript - 多个复选框,使用 Vue.js 2.0 中的动态作弊数据绑定(bind)到同一个数组