我有我的自定义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>
但它使得保存事件根本没有被捕获。
答案 0 :(得分:1)
在侦听事件时,您可以使用ev:target="#observer"
指向父节点,但不能使用相同的语法将事件分派给父节点(同样,名称#observer
在那种情况下没有多大意义)。
但是,不是将该逻辑放在生成的代码中,而不是在<xbl:handlers>
内的组件本身内部?这将导致生成更少的代码,并允许您在将组件添加到表单后更改逻辑。