检查 Nunjucks 中的对象是否为空
Check if an object is empty in Nunjucks
所以我在 Node.js 应用程序中使用 Nunjucks 作为模板引擎。
我有一个我们称之为 var
的对象,它可能为空也可能不为空。
当它为空时,如果我这样做
{{ var | dump }}
Nunjucks 正确显示它是一个空对象,显示 {}
.
问题是,我找不到任何方法来使用 Nunjuck 的 {% if condition %}
语句检查对象是否为空。我已经尝试了 var.length
、var | length
、var | first
和简单的 var
作为条件,但是 none 有效,它们都只是评估为真(或 false),无论 var
是否为空。有谁知道如何解决这个问题?
编辑:使用 {% if var | dump != '{}' %}
确实有效,但似乎是一个非常 hacky 的解决方案...
编辑 2:我最终只是为满足我需要的对象创建了一个自定义 empty
过滤器:
env.addFilter('empty', function(object) {
return Object.keys(object).length === 0;
});
最近在 Nunjucks 2.5.0 中添加了对使用 length
过滤器访问对象长度的支持。
所以你现在可以使用:
{% if var|length %}
所以我在 Node.js 应用程序中使用 Nunjucks 作为模板引擎。
我有一个我们称之为 var
的对象,它可能为空也可能不为空。
当它为空时,如果我这样做
{{ var | dump }}
Nunjucks 正确显示它是一个空对象,显示 {}
.
问题是,我找不到任何方法来使用 Nunjuck 的 {% if condition %}
语句检查对象是否为空。我已经尝试了 var.length
、var | length
、var | first
和简单的 var
作为条件,但是 none 有效,它们都只是评估为真(或 false),无论 var
是否为空。有谁知道如何解决这个问题?
编辑:使用 {% if var | dump != '{}' %}
确实有效,但似乎是一个非常 hacky 的解决方案...
编辑 2:我最终只是为满足我需要的对象创建了一个自定义 empty
过滤器:
env.addFilter('empty', function(object) {
return Object.keys(object).length === 0;
});
最近在 Nunjucks 2.5.0 中添加了对使用 length
过滤器访问对象长度的支持。
所以你现在可以使用:
{% if var|length %}