繁体   English   中英

Swig模板:如何检查数组中是否存在值?

[英]Swig Templates: How to check if value exists in array?

我在一个新项目上使用Swig。 我的一个变量是一个值数组(字符串)。 Swig中是否有内置运算符来检查数组中是否存在值? 根据文档,似乎“应该”应该这样做,但没有提供进一步的细节。 还有什么是否定它的正确方法? 我正在尝试以下,但没有运气。 我需要写一个自定义标签吗?

{% if 'isTime' in dtSettings %}checked{% endif %}

{% if 'isTime' not in dtSettings %}hide{% endif %}
{% if !'isTime' in dtSettings %}hide{% endif %}
{% if !('isTime' in dtSettings) %}hide{% endif %}

您可以使用Array#indexOf

{% if dtSettings.indexOf('isTime') !== -1 %}checked{% endif %}
{% if dtSettings.indexOf('isTime') === -1 %}hide{% endif %}

或者创建自定义过滤器以使生活更轻松:

swig.setFilter('contains', function(arr, value) {
  return arr.indexOf(value) !== -1;
});

// In your template:
{% if dtSettings|contains('isTime') %}checked{% endif %}
{% if not dtSettings|contains('isTime') %}hide{% endif %}

AFAIK, in运算符仅适用于对象。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM