Копировать содержимое первого раздела в другие существующие разделы - PullRequest
0 голосов
/ 20 января 2012

Предположим, это мой экземпляр модели:

<xforms:instance id="main">
    <form>
        <section-1/>
        <section-2/>
        <rep-section>
            <a/>
            <b/>
            <c/>
        </rep-section>
    </form>
</xforms:instance>

У меня есть сценарий, в котором у меня есть повторяемый раздел <rep-section>, который можно динамически добавлять в форму с помощью кнопки «Добавить» в форме. Только в первом разделе есть кнопка «Копировать в другие разделы», которая при нажатии должна скопировать все содержимое первого раздела в остальные разделы. Скажем, если у меня есть 7 разделов, то содержимое первого раздела следует скопировать в остальные 6 разделов.

Посоветуйте, пожалуйста, как мы можем этого добиться.

У меня есть идея, которая прекрасно работает, но я думаю, что должен быть оптимизированный способ сделать это.

<xforms:trigger appearance="minimal">
    <xforms:label>Copy to other Sections</xforms:label>
    <xforms:action ev:event="DOMActivate">???</xforms:action>
</xforms:trigger>

1 Ответ

1 голос
/ 27 января 2012

Это будет делать следующее:

<xforms:trigger>
    <xforms:label>Copy to other section</xforms:label>
    <xforms:action ev:event="DOMActivate">
        <xxforms:variable name="source" select="."/>
        <xforms:action ev:event="DOMActivate" xxforms:iterate="../* except .">
            <xforms:delete ref="*"/>
            <xforms:insert context="." origin="$source/*"/>
        </xforms:action>
    </xforms:action>
</xforms:trigger>

Вы можете увидеть в действии в этом полном примере .

...