2017-09-20 4 views
1

Ich benutze Vue 2 js mit Laravel 5.5.Vue.js 2 autoescape HTML

Ich habe eine Komponente Daten - Abschrift Text. Und ich habe eine vue Instanz

new Vue({ 
     el : '#lesson_edit', 
     data : { 
      lesson : { 
       body : `{{ $lesson->body }}` 
      } 
     } 
    }); 

Körper Zeichenfolge ein '>' Symbol hat. Aber nach dem Zuweisen von Esc zu <.

Das Problem ist die nächste, ich vue Komponente haben, die Abschlags

<template> 
     <div v-html="parsedBody"></div> 
    </template> 


<script> 

    export default { 
     props : ['body'], 
     mounted() { 
      console.log('Component mounted.') 
     }, 
     computed : { 
      parsedBody(){ 
       return marked(this.body, { sanitize: true }) 
      } 
     } 
    } 
</script> 

Nach der Zuweisung Körper und unescpe html cconverts ich keine gültige Abschlags Umwandlung erhalten.

Was soll ich tun?

Fügen Sie etwas zur Komponente hinzu? Verweigern diese Zeichen in Vue-Instanz entkommen? Oder etwas anderes ... Bitte, helfen.

+0

ist die Umwandlung von '>' zu '<' vor der Zuweisung zu vue oder nach? Hast du es auch versucht {!! !!} anstelle von {{}}, um eine unbearbeitete Zeichenfolge und keine maskierte Zeichenfolge anzuzeigen? –

Antwort

2

Es ist Blade-Engine auf der Serverseite, die HTML entkommt, nicht Vue. Sie müssen {!! $lesson->body !!} anstelle von {{ $lesson->body }} verwenden.

+0

ja. es hilft. –

+0

Sie können diese Antwort akzeptieren, wenn diese Lösung funktioniert. –