Como posso conseguir que o HTML seja interpretado dentro de uma ligação de bigode? No momento, o intervalo ( <br />
) é apenas exibido / escapado.
Aplicativo Vue pequeno:
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 }
]
}
})
E aqui está o modelo:
<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>
javascript
html
vue.js
Mike
fonte
fonte
Respostas:
Começando com o Vue2, as chaves triplas foram descontinuadas, você deve usar
v-html
.<div v-html="task.html_content"> </div>
Não está claro no link da documentação o que devemos colocar dentro
v-html
, suas variáveis vão para dentrov-html
.Além disso,
v-html
funciona apenas com<div>
ou<span>
não<template>
.Se você quiser ver isso ao vivo em um aplicativo, clique aqui .
fonte
<template>
" é a parte importante aqui se você vem de angularjs e olhar para algo como<ng-include>
Você pode usar a diretiva v-html para mostrá-la. como isso:
fonte
Você pode ler isso aqui
Se você usar
será escapado. Se você quiser html bruto, precisará usar
EDIT (5 de fevereiro de 2017): Como aponta o @hitautodestruct, no vue 2 você deve usar v-html em vez de chaves triplas.
fonte
Por padrão, o Vue é fornecido com a diretiva v-html para mostrá-lo; você o vincula ao próprio elemento, em vez de usar a ligação bigode normal para variáveis de string.
Portanto, para o seu exemplo específico, você precisaria:
fonte
Você precisa usar a diretiva v-html para exibir o conteúdo html dentro de um componente vue
fonte