有什么方法可以链接xform绑定和xform操作?

时间:2019-07-08 04:24:26

标签: xforms

在表单中,当用户单击按钮时,它将显示一个弹出窗口-我将在其中接受用户的输入-该弹出窗口应为ID类型(http://books.xmlschemata.org/relaxng/ch19-77151.html)。

当用户单击save时,它将调度一个事件,如果ID类型为ID,则该事件将从弹出窗口中获取的输入添加到实例中。

我不确定该怎么做?

我尝试使用bind和Submit-这是我没有要发布的终结点-因此,当错误的类型不是validate-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绑定附加到xform操作上!

1 个答案:

答案 0 :(得分:0)

绑定不能附加到动作:在动作执行过程中,不会重新评估绑定。

在执行动作之后,根据依赖关系重新评估所有绑定。

在某些非常特殊的情况下,需要在一系列操作中重新计算,刷新或重建。这就是为什么指定了xforms:recalculate,xforms:revalidate,xforms:refresh和xforms:rebuild操作的原因。