2015-06-16 10 views
71

W jaki sposób udaje mi się uzyskać interpretację html w powiązaniu z wąsami? W tej chwili przerwa (<br />) jest wyświetlana/escaped.Wyświetlacz Vue bez zmiany znaczenia html

Mała aplikacja 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 } 
    ] 
    } 
}) 

A oto szablon

<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> 

Odpowiedz

140

Możesz użyć dyrektywy v-html, aby ją wyświetlić. tak:

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

+3

To rzeczywiście działa w Vue2. Najpierw trows na kompilacji. –

+1

To nie działa w ogóle – usefulBee

+11

działa w usłudze vue2 – daslicious

70

You can read that here

Jeśli używasz

{{<br />}} 

zostanie ona uciekła. Jeśli chcesz surowego html, musisz użyć

{{{<br />}}} 

edycji (5 lutego 2017): Jak @hitautodestruct wskazuje w v2 trzeba zastosować v-html zamiast potrójnymi klamrami.

+1

Tak, nawet w dokumencie. Dzięki. – Mike

+46

Należy zauważyć, że w vue 2.0 potrójne wąsy [zostało wycofane] (https://github.com/vuejs/vue/issues/2873) powinieneś [użyć v-html] (http://vuejs.org/api/# v-html). – hitautodestruct

21

Począwszy Vue2, potrójne szelki były przestarzałe, jesteś w użyciu v-html.

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

Nie jest jasne od documentation link, co mamy się umieścić wewnątrz v-html, swoje zmienne idzie wewnątrz v-html.

Również v-html działa tylko z <div> lub <span>, ale nie z <template>.

Jeśli chcesz zobaczyć to na żywo w aplikacji, kliknij here.

Powiązane problemy