gpt4 book ai didi

extjs - 是否可以在不使用自定义小部件的情况下将单个对话框字段映射到多个 JCR 属性?

转载 作者:行者123 更新时间:2023-12-04 15:19:43 26 4
gpt4 key购买 nike

我的 AEM 项目中有一段配置需要简化。

配置可以由两组用户更改。一个需要对一组参数进行精细控制,而另一个只关心单个参数。

我没有编写自定义 Ext JS 插件来隐藏/显示字段并添加一个额外的字段来在正常/简化模式之间切换,而是决定为那些对粒度配置不太感兴趣的人制作一个单独的组件。

在我的 dialog.xml ,在功能齐全的组件中,我有以下字段:

<field1
jcr:primaryType="cq:Widget"
allowBlank="false"
fieldLabel="Field 1"
name="./field1"
xtype="selection"
type="select"
options="/bin/myapp/fancyOptions.json" />
<field2
jcr:primaryType="cq:Widget"
allowBlank="false"
fieldLabel="Field 2"
name="./field2"
xtype="selection"
type="select"
options="/bin/myapp/fancyOptions.json" />
<field3
jcr:primaryType="cq:Widget"
allowBlank="false"
fieldLabel="Field 3"
name="./field3"
xtype="selection"
type="select"
options="/bin/myapp/fancyOptions.json" />

在简化组件的对话框中,我只需要一个字段:
  • 领域

  • 而 Field 1、Field 2 和 Field 3 的值应该从 Field 的值中推断出来(在这种情况下,所有 3 个字段都应该具有相同的值)

    我不想引入单独的 Sling 模型或任何其他 Adaptable,我希望保持内容结构一致以便在后端更容易使用。
    - myComponent
    - field1
    - field2
    - field3

    是否可以将经典 UI 对话框中的一个字段映射到内容存储库中的多个属性,而无需创建自定义 Ext JS 小部件来单独发布它们?我可以写一个,但如果可能的话,我想避免它。

    最佳答案

    是的,这是可能的。 SlingPostServlet 支持 a parameter called @ValueFrom 这允许它根据不同字段的值生成内容存储库中属性的内容。

    这是一个(部分)对话框定义,在我的情况下映射到正确的 HTML 表单:

    <field1
    jcr:primaryType="cq:Widget"
    allowBlank="false"
    fieldLabel="Field 1"
    name="./field1"
    xtype="selection"
    type="select"
    options="/bin/myapp/fancyOptions.json" />
    <field2
    jcr:primaryType="cq:Widget"
    xtype="hidden"
    name="./field2@ValueFrom"
    value="./field1"
    defaultValue="./field1" />
    <field3
    jcr:primaryType="cq:Widget"
    xtype="hidden"
    name="./field3@ValueFrom"
    value="./field1"
    defaultValue="./field1" />

    出于某种原因,这只适用于 valuedefaultValue设置。仅设置 defaultValue使这项工作适用于新创建的组件,但每次打开对话框时,它都会从存储库中读取数据并清除预期值。同时,设置只是 value属性将阻止对话框在第一次打开对话框时初始化元素。

    关于extjs - 是否可以在不使用自定义小部件的情况下将单个对话框字段映射到多个 JCR 属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38726015/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com