在模式对话框中,当用户单击“确定”时,我必须在现有实例中插入不同的“模板”实例。要插入的模板实例数取决于另一个节点集中的元素数。我试图以这种方式实现这种行为:
<xforms:trigger>
<xforms:label>OK</xforms:label>
<xforms:action ev:event="DOMActivate">
<xforms:repeat nodeset="$currentBranche/../../Eleves/Eleve">
<xforms:insert context="instance('examen-template')/Notes" nodeset="Note" at="1" position="before" origin="instance('note-template')"/>
</xforms:repeat>
<xforms:insert context="$currentBranche/Examens" nodeset="Examen" at="1" position="before" origin="instance('examen-template')"/>
<xxforms:hide dialog="create-examen"/>
</xforms:action>
</xforms:trigger>
我收到以下错误:Invalid action: {http://www.w3.org/2002/xforms}repeat
这是否意味着我无法在xforms:repeat
中使用xforms:action
?如果是这种情况,我该如何实现所需的行为呢?
答案 0 :(得分:2)
而不是xforms:repeat
,您可以在XForms 2.0中使用@iterate(The iterate attribute),这至少已经在Orbeon中实现为xxforms:iterate:More powerful XForms actions thanks to iterations
-Alain
答案 1 :(得分:2)
正如Alain所提到的,xforms:repeat
是一个用户界面元素,不能在动作中使用。
而是在支持它的实现中使用XForms 2.0 iterate
属性。自this commit from March 10, 2012)支持以来Orbeon Forms的构建。如果您在2012年3月10日之前使用Orbeon Forms 3.9或版本,请使用xxforms:iterate
扩展名。