Дисплей вю неэкранированный HTML-код


как я могу управлять, чтобы получить 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>
4 109

4 ответа:

начиная с Vue2, тройные скобки были устаревшими, вы должны использовать v-html.

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

непонятно от ссылка на документацию что касается того, что мы должны разместить внутри v-html ваши переменные идет внутри v-html.

и v-html работает только с <div> или <span> а не с <template>.

если вы хотите увидеть это в прямом эфире в приложении, нажмите здесь.

вы можете использовать директиву v-html, чтобы показать его. вот так:

<td v-html="desc"></td>

вы можете прочитать, что здесь

Если вы используете

{{<br />}}

он будет спасен. Если вы хотите raw html, вы должны использовать

{{{<br />}}}

EDIT (Feb 5 2017): как указывает @hitautodestruct,в Vue 2, вы должны использовать v-html вместо тройных фигурных скобок.

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>