2016-06-19 1 views
0

Donc j'utilise Nunjucks comme moteur de template dans mon application Node.js.Vérifiez si un objet est vide dans Nunjucks

J'ai un objet que nous appellerons var qui peut être vide ou non.

Lorsqu'il est vide, si oui {{ var | dump }} Nunjucks montre correctement qu'il s'agit d'un objet vide, affichant {}.

Le problème est que je ne trouve aucun moyen de vérifier si l'objet est vide en utilisant l'instruction {% if condition %} de Nunjuck. J'ai essayé var.length, var | length, var | first, et tout simplement var pour la condition, mais aucun d'eux ne fonctionne, ils évaluent tout juste à vrai (ou faux), indépendamment du fait que var soit vide ou non. Quelqu'un sait-il comment résoudre ceci?

EDIT: en utilisant {% if var | dump != '{}' %} fonctionne, mais semble comme une solution vraiment aki ...

EDIT 2: J'ai fini juste de créer un filtre personnalisé empty pour les objets qui fait ce que je dois:

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

Répondre

3

La prise en charge de l'accès à la longueur d'un objet à l'aide du filtre length a été récemment ajoutée au Nunjucks 2.5.0.

Vous pouvez maintenant utiliser:

{% if var|length %}