我有以下事件处理程序和实例:
<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
事件?)
答案 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>