1

モーダル ダイアログで、ユーザーが [OK] をクリックすると、既存のインスタンスに別の「テンプレート」インスタンスを挿入する必要があります。挿入するテンプレート インスタンスの数は、別のノードセット内の要素の数によって異なります。私はこの動作をそのように実装しようとしました:

<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か?その場合、どうすれば目的の動作を実装できますか?

4

2 に答える 2

2

の代わりにxforms:repeat、XF​​orms 2.0 で @iterate を使用できます ( iterate 属性)。少なくとも Orbeon では xxforms:iterate として既に実装されています。

-アラン

于 2012-12-16T15:28:39.813 に答える
2

Alain が言及しているように、xforms:repeatはユーザー インターフェイス要素であり、アクション内では使用できません。

代わりに、XF​​orms 2.0iterate属性をサポートする実装で使用してください。2012 年 3 月 10 日のこのコミット以降の Orbeon Forms のビルドは、それをサポートしています。Orbeon Forms 3.9 または 2012 年 3 月 10 日より前のビルドを使用している場合は、xxforms:iterate拡張機能を使用してください。

于 2012-12-17T01:04:33.820 に答える