在CrafterCMS中,如何查询模型以获取包含重复组中所有字段的数组?

时间:2017-05-04 23:07:03

标签: content-management-system xpathquery

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)

如何查询模型以获取数组中哪些元素具有重复组中的所有值?

1 个答案:

答案 0 :(得分:3)

使用

获取SiteItem后
  

&lt; #assign memberModel = siteItemService.getSiteItem(memberItem.storeUrl)/&gt;

它的工作方式与FreeMarker模板中的任何其他contentModel变量一样。所以,您可以使用

进行迭代
<#list memberModel.skills.item as skill>
    ${skill.skillName} = ${skill.skillLevel}
</#list>