Orbeon:将 targetid 设置为父 ID

Orbeon : setting targetid as a parent id

我有我的自定义 XBL 控件:

<fr:my-custom-control id="" attr1="" attr2=""..>
    <xf:dispatch  targetid=".." ../>
</fr:my-custom-control>

我希望 targetid 成为父 ID,f.e。在表单上添加我的自定义控件后 targetid 将与 fr:my-custom-control

的 id 相同
<fr:my-custom-control id="control-16-control" ..>
    <xf:dispatch targetid="control-16-control">
</fr:my-custom-control>

当然,我可以手动设置这个 id,但是有没有办法让它自动发生?我在尝试

<xf:dispatch targetid="@fr:my-custom-control-id"/>

运气不好。

更新

我试图避免设置目标 ID,像这样:

<fr:my-custom-control id="..." ..>
   <xf:dispatch event="fr-data-save-done" observer="fr-form-model" name="my-custom-event"/>
</fr:my-custom-control>

但这使得保存事件根本没有被捕获。

监听事件时,可以用ev:target="#observer"指向父节点,但不能使用相同的语法向父节点派发事件(另外,名字#observer 在那种情况下没有多大意义)。

但是,与其将逻辑放在生成的代码中,不如将其放在组件本身内部,<xbl:handlers> 内部?这将导致生成更少的代码,并允许您在将组件添加到表单后更改逻辑。