HUGO IN函数不接受变量作为ITEM

时间:2018-09-19 12:12:08

标签: go hugo go-templates

我正在使用Hugo的IN函数,该函数可用作Hugo Documentation for IN定义的in SET ITEM

我正在尝试通过以下代码过滤掉特定类别的帖子

{{ range where .Site.Pages "Section" "products"}}
   {{ if in .Params.categories "New Arrival" }}
          <li>{{ .Title }}</li>
   {{end}}
{{end}}

上面的代码可以正常工作。

但是,如果我为ITEM使用变量而不是字符串。它总是返回False

{{ $display_product_cat := "New Arrival" }}

{{ range where .Site.Pages "Section" "products"}}
      {{ if in .Params.categories $display_product_cat }}
          <li>{{ .Title }}</li>
      {{end}}
{{end}}

上述代码无法正常工作。

想知道我是否在这里遗漏了什么。感谢您的时间和帮助。

1 个答案:

答案 0 :(得分:0)

您可以通过以下方式测试布尔值:

{{ $i := in .Params.categories "New Arrival" }}
{{ $i }} ## will output true|false

{{ $var := "New Arrival" }}
{{ $j := in .Params.categories $var }}
{{ $j }} ## will output true|false

如果给出错误的结果,则可能需要检查.Params的实际构造方式(它们以什么模式等)。

提供更多信息将为您带来更好的调试效果(如Params的代码段)。