使用实例的值作为调度名称
Using an instance's value for a dispatch name
我有以下事件处理程序和实例:
<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
事件?)
您可以在 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>
我有以下事件处理程序和实例:
<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
事件?)
您可以在 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>