【问题标题】:Get name of submission in event (xforms-submit-error)获取事件中提交的名称 (xforms-submit-error)
【发布时间】:2022-06-20 16:10:01
【问题描述】:

我正在尝试对所有以错误结尾的提交进行通用句柄。

在事件xforms-submit-error 中是否可以获得提交的名称(id 或独特的东西)?

我已经制作了自己的自定义模型,女巫可以捕获并存储提交失败的元数据。剩下我要处理的是如何获得提交的名称。我需要以某种方式将每个电话分开。我不能使用 uri,因为我有时会在表单中多次调用相同的 uri。 这是我的代码:

   <xf:model  xmlns:xf="http://www.w3.org/2002/xforms" id="my-model">
        <xf:instance id="my-error-instance">
            <reponseList>
            </reponseList>
        </xf:instance>
        <xf:instance id="my-error-template-instance">
            <submission>
                <name/>
                <error-type/>
                <status-code/>
                <uri/>
                <content-lenght/>
                <body/>
            </submission>
        </xf:instance>
        <xf:action observer="my-main-model" event="xforms-submit-error">
           <xf:insert context="xxf:instance('my-error-instance')" ref="reponseList" origin="xxf:instance('my-error-template-instance')"/>
                   
            <xf:setvalue ref="xxf:instance('my-error-instance')//submission[1]/name" value="THIS_IS_WHAT_I_WANT"/>      
            <xf:setvalue ref="xxf:instance('my-error-instance')//submission[1]/error-type" value="event('error-type')"/>                
            <xf:setvalue ref="xxf:instance('my-error-instance')//submission[1]/status-code" value="event('response-status-code')"/>
            <xf:setvalue ref="instance('my-error-instance')/uri" value="event('resource-uri')"/>
            <!-- content-length or any relevant header -->
            <xf:setvalue ref="instance('my-error-instance')/content-lenght" value="event('response-headers')[lower-case(name) = 'content-length']/value"/>       
            <xf:setvalue ref="instance('my-error-instance')/body" value="event('response-body')"/>           
        </xf:action>
    </xf:model>

我将观察者设置为my-main-model,女巫是我表单的主要模型。所以这个事件会影响每一个失败的提交。对于每次失败的提交,它都会从模板中添加新结构并填充元数据。我需要以某种方式填充元素name...

【问题讨论】:

    标签: xforms


    【解决方案1】:

    我发现我可以使用event('target')。它返回触发xforms-submit-error 的提交名称。我不知道它是纯 XForms 还是仅在 Orbeon 中,但它对我来说效果很好。

    【讨论】:

      猜你喜欢
      • 2020-01-30
      • 2020-03-11
      • 2011-11-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-05-07
      • 2022-11-11
      相关资源
      最近更新 更多