无法限制TagInputField中的标记数量

时间:2016-06-06 15:39:14

标签: extjs cq5 aem

根据the documentation of the TagInputField widget,应该可以限制用户从AEM标签中的每个命名空间使用的标签数量。

  

namespaces数组

     

应显示和允许的标记命名空间列表。如果为空,则允许所有可用的命名空间。否则是一个字符串数组(命名空间名称)或更多配置一个对象数组,如下所示:

{
    name: "namespace",
    maximum: 1 // maximum number of tags allowed from this namespace; if -1 no limit (default)
}

但是当我尝试这样做时它似乎不起作用。

在我的场景中,我想将用户限制在一个命名空间中,并且只允许她/他选择一个标记。

当我仅在dialog.xml中指定命名空间时,namespaces设置得到尊重:

<tags
  jcr:primaryType="cq:Widget"
  allowBlank="true"
  fieldLabel="Tags"
  namespaces="[topics]"
  name="./tags"
  xtype="tags"/>

小部件仅显示my-namespace

中的标签

当我尝试限制此命名空间中的标记数时,麻烦就开始了。

<tags
  jcr:primaryType="cq:Widget"
  allowBlank="true"
  fieldLabel="Tags"
  namespaces="[{name: &quot;topics&quot;, maximum: 1}]"
  name="./tags"
  xtype="tags"/>

这简单地被忽略了,在使用vault将内容导入AEM之后,似乎已经关闭了。当我在CRXDE中检查它时,它看起来像一个带有两个值的String数组。

enter image description here

对话框的行为似乎证实这不仅仅是它在CRXDE中显示的方式的问题,因为小部件没有显示命名空间。

enter image description here

即使我手动编辑CRXDE中的String数组以获得正确的值(请参见下面的屏幕截图),该对话框也不会获取任何名称空间(与上面相同)

enter image description here

有没有人以上述方式运用这个小部件?我做错了还是这个错误?

2 个答案:

答案 0 :(得分:0)

我的同事刚回答我的回答。事实证明我误解了文档。配置(如果以复杂格式使用)实际上需要JCR节点的嵌套结构。

因此,在我的dialog.xml我需要一个额外的节点:

<tags
  jcr:primaryType="cq:Widget"
  allowBlank="true"
  fieldLabel="Tags"
  name="./tags"
  xtype="tags">
    <namespaces jcr:primaryType="cq:WidgetCollection">
        <topics jcr:primaryType="nt:unstructured" maximum="1" name="topics" />
    </namespaces>
</tags>

enter image description here

答案 1 :(得分:0)

<tags
  jcr:primaryType="cq:Widget"
  fieldLabel="Tags"
  name="./tags"
  xtype="tags">

    <namespaces jcr:primaryType="cq:WidgetCollection">
        <topic1 jcr:primaryType="nt:unstructured" maximum="3" name="topic1" />
        <topic2 jcr:primaryType="nt:unstructured" maximum="3" name="topic2" />

    </namespaces>
</tags>

链接: - http://help-forums.adobe.com/content/adobeforums/en/experience-manager-forum/adobe-experience-manager.topic.html/forum__5hd0-hi_all_in_ourco.html

另请查看这篇旧帖子: - https://forums.adobe.com/thread/1175413

//

<locationTag jcr:primaryType="cq:Widget" allowBlank="{Boolean}false"  
       cls="cq-propsdialog-tags" fieldLabel="Campus Location"  
       fieldDescription="Specify a campus location" name="./locationID/cq:tags"  
                                                  xtype="tags">  
       <namespaces jcr:primaryType="cq:WidgetCollection">  
            <ns1 jcr:primaryType="nt:unstructured" maximum="1"  name="campuses" />  
       </namespaces>  
  </locationTag>  

我希望这会对你有所帮助。

谢谢和问候 Kautuk Sahni