【问题标题】:Test for empty variable in Swig template在 Swig 模板中测试空变量
【发布时间】:2013-10-14 19:01:35
【问题描述】:

在 Twig 中,我有运算符 is 并测试空变量(字符串或数组):

{% if info is empty %}
    ...
{% endif %}

我如何在 Swig 模板中做这样的事情?

【问题讨论】:

    标签: swig-template


    【解决方案1】:

    简单地做

    {% if !info.length %}
    ...
    {% endif %}
    

    这将匹配字符串 ("")、数组 ([]) 和任何其他没有 .length 属性和真值的对象。

    【讨论】:

    • 是的。 Swig 没有 Jinja 和 Twig 那样的“测试”。有更好的支持直接转换为 JavaScript 的内置插件,就像这里给出的例子一样。
    • 嘿 Paul,swig 真的很好,我应该早点知道。一个问题:检查元素是否在数组中的最佳方法是什么 - 我会为此编写一个过滤器,对吧?
    【解决方案2】:
    {% if Object.keys(info).length != 0 %}
    

    对于一个对象/字典空测试

    【讨论】:

    • 谢谢!对于 swig,只有您的方式按预期工作,而 array.length | array[0] 返回未定义。
    【解决方案3】:

    注意,如果你想在数字类型的字段中区分一个未定义的值和一个零值,你需要这样做:

    //this test will be true only on undefined values
    {% if !field and field!==0 %} // note the double = !!. indeed in swig and in js !undefined and !0 are both true values
    // this one will be true for undefined and 0 value fields
    {% if !field %} 
    

    【讨论】:

      【解决方案4】:
      {% if Object.length > 0 %}
      
      {% endif %}
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-10-02
        • 1970-01-01
        • 1970-01-01
        • 2015-08-13
        • 1970-01-01
        相关资源
        最近更新 更多