如何在多字段中使用富文本(在CQ5对话框中)? (防止“this.el.dom未定义”错误)

时间:2013-12-09 15:36:06

标签: cq5

我创建了一个自定义组件,并尝试在对话框中的multifiled中使用RTE(xtype="richtext")。

现在,当我尝试删除项目时,或者在对话框关闭后&重新打开另外一个对话框既不会关闭,也不会用OK按钮保存数据。

dialog.xml:

<myField
    jcr:primaryType="cq:Widget"
    name="./myField"
    xtype="multifield">
    <fieldConfig
        jcr:primaryType="cq:Widget"
        xtype="richtext">
    </fieldConfig>
</myField>

Sham HC在AEM FAQ's发布了2个解决方案:

  
      
  1. 使用textfield代替richtext或尝试不在richtext中使用multifield
  2.   
  3. 如果richtext中需要multifield,请按照以下说明在您的开发环境中进行验证。

         

    重叠/libs/cq/ui/widgets/source/widgets/form/RichText.js     在方法syncValue(第910行)的重叠文件中,将[1]替换为[2]。

    [1] this.el.dom.value = html;
    [2] if(this.el.dom){this.el.dom.value = html;}
    
  4.   

问题是我想在不改变Adobe代码的情况下使用make。

2 个答案:

答案 0 :(得分:8)

我找到了一种解决方法,不需要更改CQ小部件的代码。 您需要设置richtext的{​​{1}}事件处理程序,以创建虚拟destroy

this.el.dom

答案 1 :(得分:1)

<fieldConfig
       jcr:primaryType="cq:Widget"
       height="{Long}100"
       xtype="richtext">
       <listeners
           jcr:primaryType="nt:unstructured"
           destroy="function() {this.el.dom={};}"/>
</fieldConfig>