检查Nunjucks中的对象是否为空

时间:2016-06-19 07:48:23

标签: javascript node.js templating nunjucks

所以我在我的Node.js应用程序中使用Nunjucks作为模板引擎。

我有一个我们称之为var的对象,可能是空的也可能不是。

如果它是空的,如果我这样做 {{ var | dump }} Nunjucks正确显示它是一个空对象,显示{}

问题是,我找不到任何方法使用Nunjuck的{% if condition %}语句检查对象是否为空。我已经尝试了var.lengthvar | lengthvar | first,只是简单var条件,但它们都不起作用,它们都只是评估为真(或假),无论var是否为空。有谁知道如何解决这个问题?

编辑:使用{% if var | dump != '{}' %}确实有效,但似乎是一个真正的hacky解决方案......

编辑2:我最终只为对象创建了一个自定义empty过滤器,可以满足我的需求:

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

1 个答案:

答案 0 :(得分:6)

最近在Nunjucks 2.5.0中添加了使用length过滤器访问对象长度的支持。

所以你现在可以使用:

{% if var|length %}