允许AEM Touch UI多字段中的空白值(选择字段)

允许AEM Touch UI多字段中的空白值(选择字段),aem,Aem,我已经在组件对话框节点中创建了AEM Touch UImultifield。它有一个子字段select。选择控件包含权限列表。其思想是,作者可以选择多个权限,用户必须至少拥有其中一个权限才能查看该组件,或者如果没有为该组件指定权限,则所有用户都将看到该组件。下面是对话框选项卡的.content.xml文件(该选项卡通过granite/ui/components/foundation/include参考包含) 我可以向多字段添加新权限、更改权限并删除它们,但有一个警告:我不能删除列表中的最后一个权

我已经在组件对话框节点中创建了AEM Touch UI
multifield
。它有一个子字段
select
。选择控件包含权限列表。其思想是,作者可以选择多个权限,用户必须至少拥有其中一个权限才能查看该组件,或者如果没有为该组件指定权限,则所有用户都将看到该组件。下面是对话框选项卡的
.content.xml
文件(该选项卡通过
granite/ui/components/foundation/include
参考包含)

我可以向多字段添加新权限、更改权限并删除它们,但有一个警告:我不能删除列表中的最后一个权限。出于某种原因,AEM不允许我在选择某个内容后拥有空的多字段。我已经尝试将
allowBlank
设置为true,但我认为该属性不适用于TouchUI——不管怎样,它都无法解决问题

如何允许内容作者删除多字段中的所有项目


事实证明AEM Touch UI多字段组件更新值的方式存在问题。如果删除最后一项,组件不会向服务器发送任何值(很像未选中的复选框)。如果多字段中没有项目,则必须明确告诉AEM要删除该多字段的值。以下是方法:

  • 在与多字段节点相同的级别上,创建一个新节点 (nt:非结构化);我称之为权限删除 使用名为
    权限的多字段
  • 添加以下属性:
  • sling:resourceType
    String
    granite/ui/components/foundation/form/hidden
  • 名称
    字符串
    /permissions@Delete
    (其中
    /permissions
    权限/字段
    节点的名称字段的值)
  • 布尔值
    ,true
  • 现在,当您删除最后一项时,隐藏字段的值将确保它被删除,而不仅仅是被忽略