2016-06-19 18 views
0

leer ist. Also verwende ich Nunjucks als Template-Engine in meiner Node.js-Anwendung.Überprüfen Sie, ob ein Objekt in Nunjucks

Ich habe ein Objekt, das wir var aufrufen, die möglicherweise leer ist oder nicht.

Wenn es leer ist, wenn ich es tue {{ var | dump }} Nunjucks zeigt richtig, dass es ein leeres Objekt ist, zeigt {}.

Das Problem ist, ich kann keine Möglichkeit finden, zu überprüfen, ob das Objekt leer ist, mit Nunjucks {% if condition %} Anweisung. Ich habe versucht, var.length, var | length, var | first, und einfach nur var für die Bedingung, aber keiner von ihnen funktioniert, sie alle nur zu wahren (oder falsch), unabhängig davon, ob var ist leer oder nicht. Weiß jemand, wie man das löst?

EDIT: mit {% if var | dump != '{}' %} funktioniert, aber es scheint wie eine wirklich hacky Lösung ...

EDIT 2: Ich landete nur einen benutzerdefinierten empty Filter für Objekte zu schaffen, die das tut, was ich brauche:

env.addFilter('empty', function(object) { 
    return Object.keys(object).length === 0; 
}); 

Antwort

3

Unterstützung für den Zugriff auf eine Objektlänge mit dem length Filter wurde kürzlich in Nunjucks 2.5.0 hinzugefügt.

So können Sie jetzt:

{% if var|length %}