3

CrafterCMS中,我有一个带有 itemSelector 字段的组件Team ,我在其中分配了另一个组件TeamMember的一些实例。

Team的模板中,我使用 siteItemService.getSiteItem 来获取子组件的模型信息:

<#assign memberModel =  siteItemService.getSiteItem(memberItem.storeUrl) />

在 TeamMember 类型的字段之间,我有: 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)

如何查询模型以获得一个数组,其中元素具有重复组中的所有值?

4

1 回答 1

3

一旦你得到 SiteItem

<#assign memberModel = siteItemService.getSiteItem(memberItem.storeUrl) />

它就像 FreeMarker 模板中的任何其他 contentModel 变量一样工作。所以,你可以迭代它

<#list memberModel.skills.item as skill>
    ${skill.skillName} = ${skill.skillLevel}
</#list>
于 2017-05-04T23:29:57.097 回答