it-swarm.com.de

Wie füge ich console.log () - JavaScript-Logik in einer Handlebars-Vorlage hinzu?

Ich bin gerade dabei, eine neue Meteor-App zu erstellen, und ich kann nicht herausfinden, wie Sie JavaScript-Logik mit Handlebars hinzufügen, um eine console.log() vor meiner jeweiligen Schleife auszuführen. Im Backbone würde ich einfach <% console.log(data); %> machen, um zu testen, ob die Daten übergeben wurden.
Ich bin mir nicht sicher, wie das mit Meteor und Handlebars zu tun ist, und ich konnte die Lösung auf ihrer Website nicht finden.

28
Jason Biondo

Erstellen Sie einen Handlebars-Helfer in einer der vom Client geladenen JavaScript-Dateien in Ihrem Projekt:

Template.registerHelper("log", function(something) {
  console.log(something);
});

Und dann rufen Sie es in Ihrer Vorlage auf:

{{log someVariable}}

Sie können den aktuellen Kontext einfach mit {{log this}} protokollieren.

(Beachten Sie, dass in Meteor vor Version 0.8 oder in reinen Lenkern außerhalb einer Meteor-App Template.registerHelper durch Handlebars.registerHelper ersetzt wird.)

41
Geoffrey Booth

Handlebars v3 hat jetzt einen eingebauten Log-Helfer. Sie können sich von einer Vorlage aus bei der Konsole anmelden

{{log  this}}

Sie können die Protokollierungsstufe wie folgt einstellen

Handlebars.logger.level = 0; // for DEBUG
19
Phil C

ich finde diesen Helfer sehr nützlich

Handlebars.registerHelper("debug", function(optionalValue) {
    console.log("Current Context");
    console.log("====================");
    console.log(this);
    if (optionalValue) {
        console.log("Value");
        console.log("====================");
        console.log(optionalValue);
    }
});

dann können Sie es auf zwei Arten verwenden

nur eine einfache

{{debug}}

die den aktuellen Kontext ausdrucken wird

oder um einen einzelnen Wert zu prüfen

{{debug val}}

diesen Wert einfach ausdrucken

13
nate-strauser

Ich verwende immer den folgenden Helfer: Er protokolliert die Daten und fügt einen optionalen Haltepunkt hinzu. Auf diese Weise können Sie den aktuellen Handlebars-Kontext im Browser-Debugger überprüfen.

Gefunden auf https://Gist.github.com/elgervb/5c38c8d70870f92ef6338a291edf88e9

/**
* Register a debug helper for Handlebars to be able to log data or inspect data in the browser console
* 
* Usage: 
*   {{debug someObj.data}} => logs someObj.data to the console
*   {{debug someObj.data true}} => logs someObj.data to the console and stops at a debugger point
* 
* Source: https://Gist.github.com/elgervb/5c38c8d70870f92ef6338a291edf88e9
* 
* @param {any} the data to log to console
* @param {boolean} whether or not to set a breakpoint to inspect current state in debugger
*/
Handlebars.registerHelper( 'debug', function( data, breakpoint ) {
    console.log(data);
    if (breakpoint === true) {   
        debugger;
    }
    return '';
});
1