如何使用vm访问模板中结构的选择框字段?

How to access selection box field of Structure in Template using vm?

我想创建一个 Liferay 网页内容,它将显示 select 多个状态的离子框。

我在 Structure 中创建了一个 select 字段来显示国家,并提供了多个选项,例如 - Punjab、Karnataka、Keral,....

现在我想在模板中访问这些 select 字段选项。

谁能告诉我如何访问 select 字段及其在模板中的选项?

提前致谢:)

您要读取的是所选值吗?

对于类型为 select 且名称为 selectionField 的字段,只需调用 getData() 即可读取所选值(作为字符串)。

$selectionField.getData()

听起来您正在尝试使用 Web 内容构建 portlet 功能,这不是它的目的。

尽管如此:您可以使用

访问该结构
#set($structureService = $serviceLocator.findService("com.liferay.portlet.dynamicdatamapping.service.DDMStructureLocalService"))
#set($structure = $structureService.fetchDDMStructureByUuidAndGroupId("THE-UUID-OF-YOUR-STRUCTURE", $articleGroupId))

该结构将包含您的字段的选项(参见 DDMStructure)。

但如果您真的喜欢 Web 内容方法 - 我会将配置从结构移至 Web 内容文章:

在结构中创建一个可重复的文本字段并在文章本身中添加您的状态(表单生成器 方法)。然后您可以简单地为每篇文章配置一组不同的选项。您可以使用模板中的选项:

<select name="...">
  #foreach ($state in $yourStateFieldName.siblings) 
    <option value="$state">$state</option>
  #end
</select>