6

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

我有一个我们会调用的对象var,它可能是空的,也可能不是空的。

当它为空时,如果我正确地做 {{ var | dump }}Nunjucks 显示它是一个空对象,显示{}.

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

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

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

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

1 回答 1

20

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

所以你现在可以使用:

{% if var|length %}
于 2016-09-30T15:04:32.780 回答