2017-05-25 7 views
0

Ich habe ein Mini-CMS zum Speichern von Code-Schnipsel erstellt. Es zieht Artikel aus einer Mongodb-Datenbank. Ich benutze highlgiht.js, um den Code anzuzeigen und Benutzern das Kopieren der Snippets zu ermöglichen.output rohe Javascript mit Lenker

Mit HTML, funktioniert alles wie erwartet:

{{#article}} 
    <h1>Demo</h1> 
    {{{markup}}} <!-- prints raw HTML in the screen, yay! --> 

    <h1>HTML</h1> 
    <pre class="pre-scrollable"><code class="html">{{markup}}</code></pre> 
    <!-- prints escaped HTML in the screen, and highlight.js highlights it perfectly! YAY --> 

{{/article}} 

Jetzt, mit Javascript:

{{#article}} 

    <h1>Demo</h1> 
    {{{js}}} <!-- prints empty script tag: <script></script> --> 

    <h1>JS</h1> 
    <pre class="pre-scrollable"><code class="html">{{js}}</code></pre> 
    <!-- prints <script></script> --> 

{{/article}} 

Der Inhalt des Feldes "js" in der Datenbank "console.log (" test ");"

Warum gibt es nicht aus, was in der db gespeichert wird, aber es ist ein neues Skript-Tag allein?

Vielen Dank!

+0

Lenker nicht mit Skript ändern 'console.log', also entweder' js' Wert ist eigentlich '' oder etwas anderes, das Wert ändert. Zeigen Sie, wie Sie Lenker kompilieren, und legen Sie eine 'console.log', wenn Sie den Kontext an den Lenker übergeben, und zeigen Sie uns die Ausgabe. –

+0

@MarcosCasagrande: Wenn ich eine console.log von meinem Artikel-Controller mache, bekomme ich das rohe Javascript als eigentlichen Inhalt des Dokumentfeldes. Hier ist, was ich noch herausgefunden habe: - es ist nicht der Browser, es passiert in allen von ihnen; - es ist nicht highlight.js, da dies wie erwartet funktioniert: '' '

$(document).ready(function() {$('pre code').each(function(i, e) {hljs.highlightBlock(e)});});
' '' Es ist etwas mit dem Lenker. – rsilva

+0

Auch ich benutze diesen Lenker Wrapper in meiner App: https://github.com/ericf/express-handlebars – rsilva

Antwort