如何使用Scriban获取SXA中Multilist字段的值?
在SXA中使用Scriban获取Multilist字段值的方法
你可以通过两种方式获取Multilist字段的相关值,根据需求选择即可:
1. 获取Multilist字段存储的原始ID列表
Multilist字段本质上存储的是竖线分隔的项ID字符串,直接访问字段的Value属性就能拿到:
// 获取竖线分隔的ID字符串 {{ i_item.Fields["你的Multilist字段名"].Value }} // 转成数组遍历 {{ multilist_id_array = i_item.Fields["MultilistFieldName"].Value | split: "|" }} {{ for id in multilist_id_array }} 项ID:{{ id }} {{ end }}
2. 遍历关联项并获取项的字段值
如果已经能获取到Multilist的子项(关联Item对象),直接访问项的字段即可拿到对应值:
{{ for related_item in i_item.Fields["MultilistFieldName"].TargetItems }} // 获取项的显示名称 名称:{{ related_item.Name }} // 获取自定义字段值(示例:Title字段) 标题:{{ related_item.Fields["Title"].Value }} // SXA简化写法(若字段配置了模板别名) 简化标题:{{ related_item.title }} {{ end }}
注意事项
- 字段名区分大小写,确保拼写与模板中字段名完全一致
- 若在SXA渲染模板上下文,可能需要用
sc_item替代i_item,具体看当前上下文变量 - 处理空值场景:先判断字段是否存在再操作,避免报错
{{ if i_item.Fields["MultilistFieldName"] }} // 执行上述逻辑 {{ end }}
内容的提问来源于stack exchange,提问作者Sharvan Gupta
相关产品推荐
相关产品推荐

