以下模板包含任何数组作为内容:
{%- for datapoint in content -%}
{%- assign breaker = (forloop.index | modulo: 4) -%}
{{breaker}}
{% if breaker == 0 %};
{% endif %}
{%- endfor -%}
以Visual Studio代码产生此输出,并且与文档一致:
1 2 3 0 1 2 3 0 1 2 3 0
(为了可读性,我添加了空格而不是新行)
在azure逻辑应用程序上运行相同的模板将产生此输出
1 2 3 4 5 6 7 8 9 10 11 12
是否还有其他方法可以使用Liquid模板以无模数的方式实现相同的输出?好像可能是一个问题,
{%- assign arraysize = content | size -%}
似乎也不起作用,但是
{%- assign arraysize = content.size -%}
工作正常。但是我不确定如何以这种方式使用模。
答案 0 :(得分:1)
我相信modulo
应该是Modulo
(大写的“ M”)
对于Liquid模板,Logic Apps使用DotLiquid库,该库配置了C#命名约定(请参阅this),要求使用大写的过滤器名称。
“ Transforming JSON”在Logic Apps文档中的注释中也提到了这一点。
基本上,与原始红宝石过滤器相比,过滤器必须像这样
at_least
成为AtLeast
plus
成为Plus
更新:不确定括号在液体中是否有效,但我必须将其删除以用于Logic Apps
{%- for datapoint in content -%}
{%- assign breaker = forloop.index | Modulo: 4 -%}
{{ breaker }}
{%- endfor -%}