【发布时间】: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