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>
内部?这将导致生成更少的代码,并允许您在将组件添加到表单后更改逻辑。
我有我的自定义 XBL 控件:
<fr:my-custom-control id="" attr1="" attr2=""..>
<xf:dispatch targetid=".." ../>
</fr:my-custom-control>
我希望 targetid
成为父 ID,f.e。在表单上添加我的自定义控件后 targetid
将与 fr:my-custom-control
<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>
内部?这将导致生成更少的代码,并允许您在将组件添加到表单后更改逻辑。