在Vue.js中显示未转义的HTML

JavaScript

泡芙Green

2020-03-09

如何设法在胡子绑定中解释HTML?目前,中断(<br />)只是显示/转义。

小Vue应用:

var logapp = new Vue({
  el: '#logapp',
  data: {
    title: 'Logs',
    logs: [
      { status: true, type: 'Import', desc: 'Learn<br />JavaScript', date: '11.11.2015', id: 1  },
      { status: true, type: 'Import', desc: 'Learn<br />JavaScript', date: '11.11.2015', id: 1  }
    ]
  }
})

这是模板:

<div id="logapp">    
    <table>
        <tbody>
            <tr v-repeat="logs">
                <td>{{fail}}</td>
                <td>{{type}}</td>
                <td>{{description}}</td>
                <td>{{stamp}}</td>
                <td>{{id}}</td>
            </tr>
        </tbody>
    </table>
</div>

第329篇《在Vue.js中显示未转义的HTML》来自Winter(https://github.com/aiyld/aiyld.github.io)的站点

5个回答
LEY米亚 2020.03.09

默认情况下,Vue附带了v-html指令来显示它,您将其绑定到元素本身,而不是对字符串变量使用常规的胡子绑定。

因此,对于您的特定示例,您将需要:

<div id="logapp">    
    <table>
        <tbody>
            <tr v-repeat="logs">
                <td v-html="fail"></td>
                <td v-html="type"></td>
                <td v-html="description"></td>
                <td v-html="stamp"></td>
                <td v-html="id"></td>
            </tr>
        </tbody>
    </table>
</div>
斯丁理查德 2020.03.09

你可以在这里读到

如果您使用

{{<br />}}

它会逃脱。如果您想要原始html,则必须使用

{{{<br />}}}

编辑(2017年2月5日):正如@hitautodestruct指出的那样,在vue 2中,您应该使用v-html而不是三重花括号。

猴子Harry 2020.03.09

您必须使用v-html指令在vue组件中显示html内容

<div v-html="html content data property"></div>
TomGO梅 2020.03.09

您可以使用指令v-html进行显示。像这样:

<td v-html="desc"></td>
前端逆天 2020.03.09

从Vue2开始,不赞成使用三括号v-html

<div v-html="task.html_content"> </div>

文档链接不清楚我们应该放置在什么地方v-html,您的变量在里面v-html

另外,v-html只能与一起使用<div><span>但不能与一起使用<template>

如果您想在应用程序中实时观看,请单击此处

问题类别

JavaScript Ckeditor Python Webpack TypeScript Vue.js React.js ExpressJS KoaJS CSS Node.js HTML Django 单元测试 PHP Asp.net jQuery Bootstrap IOS Android