Orbeon:将targetid设置为父ID

时间:2015-01-27 10:35:02

标签: orbeon

我有我的自定义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>

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

1 个答案:

答案 0 :(得分:1)

在侦听事件时,您可以使用ev:target="#observer"指向父节点,但不能使用相同的语法将事件分派给父节点(同样,名称#observer在那种情况下没有多大意义)。

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