Есть ли способ связать xform bind и xform action? - PullRequest
0 голосов
/ 08 июля 2019

В форме, когда пользователь нажимает кнопку, он показывает всплывающее окно - в котором я приму ввод от пользователя - который должен иметь тип ID (http://books.xmlschemata.org/relaxng/ch19-77151.html).

Когда пользователь нажимает кнопку «Сохранить», он отправляет событие, которое добавляет извлеченный ввод из всплывающего окна в экземпляр формы, если он имеет тип идентификатора.

Я не уверен, как это сделать?

Я пытался использовать bind и submit, то есть у меня нет конечной точки для публикации, поэтому, когда ошибка не относится к типу validation-error, я изменяю требуемый экземпляр.

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

Метод, который я попробовал, который отправляет ненужный запрос POST:

<xf:submission id="save-step" method="post" replace="none" ref="instance('addId')" >
        <xf:action ev:event="xforms-submit-error" if="event('error-type')!='validation-error'">
          <xf:insert ev:event="DOMActivate" nodeset="instance('addId')/step" at="last()" position="after" origin="instance('addStepId')/step"/>         
          <xf:dispatch ev:event="DOMActivate" name="popup-action-close" targetid="ModelId" />
        </xf:action>
      </xf:submission>
  <xf:bind nodeset="instance('addStepId')/step/name" type="xsd:ID"  constraint=" (count(instance('addId')/step/name[.=instance('addStepId')/step/name]) =0)" required="true()"/>

Я хочу, чтобы это было сделано без представления, как это:

<xf:action ev:event="save-step" >
          <xf:insert nodeset="instance('addId')/step" at="last()" position="after" origin="instance('addStepId')/step" />
          <xf:dispatch name="popup-action-close" targetid="ModelId" />
 </xf:action>
  <xf:bind id="checkStepName" nodeset="instance('addStepId')/step/name" type="xsd:ID"  constraint=" (count(instance('addId')/step/name[.=instance('addStepId')/step/name]) =0)" required="true()"/>

Но я не уверен, как прикрепить xform bind к действию xform!

1 Ответ

0 голосов
/ 08 июля 2019

Привязки нельзя прикреплять к действиям: во время выполнения действий привязки не переоцениваются.

Все привязки переоцениваются, согласно зависимостям, после выполнения действия.

В некоторыхВ очень специфических ситуациях необходимо пересчитать, обновить или перестроить последовательность действий.Вот почему были определены действия xforms: recalculate, xforms: revalidate, xforms: refresh и xforms: rebuild.

...