在 CrafterCMS 中,我有一个团队组件,其中包含itemSelector字段,其中我指定了另一个组件 TeamMember 的某些实例。
在团队模板中,我使用siteItemService.getSiteItem获取子组件的模型信息:
<#assign memberModel = siteItemService.getSiteItem(memberItem.storeUrl) />
在TeamMember类型的字段之间,我有: Some fields of TeamMember
我能够像这样获得skillTitle的值:
<#assign skillsTitle = memberModel.queryValue("//skillsTitle")!"" />
但是我无法获得重复组中值的值。
我尝试过:
<#assign skills = memberModel.queryValues("//skills")![] />
它只返回一个元素的数组,我认为是一个空字符串
<#assign skills = memberModel.queryValues("//skills/item")![] />
它返回一个具有正确数量元素的数组,但我认为它们都是空字符串
如果我使用:
<#assign skills = memberModel.queryValues("//skills/item/skillName")![] />
我得到一个包含所有技能名称的正确数组,但我需要迭代两个值(skillName和skillLevel)
如何查询模型以获取数组中哪些元素具有重复组中的所有值?
答案 0 :(得分:3)
使用
获取SiteItem后&lt; #assign memberModel = siteItemService.getSiteItem(memberItem.storeUrl)/&gt;
它的工作方式与FreeMarker模板中的任何其他contentModel变量一样。所以,您可以使用
进行迭代<#list memberModel.skills.item as skill>
${skill.skillName} = ${skill.skillLevel}
</#list>