使用实例的值作为调度名称

时间:2015-04-16 03:03:33

标签: orbeon xforms

我有以下事件处理程序和实例:

<xforms:action ev:event="test-event">
    <!-- do some stuff in here -->
</xforms:action>

<xforms:instance id="metadata">
    <dummy />
</xforms:instance>

后来,我有:

<xforms:setvalue ref="instance('metadata')" value="'test-event'" />
<xforms:dispatch name="instance('metadata')" target="somethingElse" />

如何使用基于元数据实例中的值的名称来启动调度以触发事件? (在这种情况下,要发起test-event事件?)

1 个答案:

答案 0 :(得分:0)

您可以在name属性中使用AVT。也就是说,如果值在大括号之间,则它将被计算为XPath表达式而不是字面上的。例如,你可以写:

<xf:trigger id="my-trigger">
    <xf:label>Click me!</xf:label>
    <xf:message ev:event="my-event" value="'Got it!'"/>
    <xf:dispatch ev:event="DOMActivate" name="{concat('my', '-', 'event')}" target="my-trigger"/>
</xf:trigger>