我可以使用列表作为自定义模板属性的值吗?

问题描述 投票:0回答:1

我正在页面模板定义中使用自定义模板属性,以在模板脚本的body标签上呈现CSS类。例如:

parameters:
  body:
    classes: example-body-class1
<body class="${def.parameters.body.classes!}"></body>

渲染输出:

<body class="example-body-class1"></body>

但是,当我添加多个类时,必须在它们之间添加空格。例如:

parameters:
  body:
    classes: example-body-class1 example-body-class2

渲染输出:

<body class="example-body-class1 example-body-class2"></body>

我想通过使用列表来改进此设计。例如:

parameters:
  body:
    classes:
      - example-body-class1
      - example-body-class2

但是,当我转储def.parameters.body.classes的值时,它返回null。

${cmsfn.dump(def.parameters.body.classes)}

[#-- Returns --]
null (Null)

[Magnolia custom template properties文档示例引用了字符串值。

我可以使用列表作为自定义模板属性的值吗?如果是这样,我如何将上面的列表呈现为字符串,每个项目之间用空格分隔?

freemarker magnolia
1个回答
1
投票
实际上它们可以是列表,但是您需要使用值来定义它们(参数通常是key:value对。

定义:

title: "test" renderType: freemarker templateScript: /test.ftl parameters: list: a: a b: b

© www.soinside.com 2019 - 2024. All rights reserved.