我有一个 XBL 组件,它在 javascript 中创建一个复选框控件。值是在组件初始化期间在 javascript 中设置的。当不在重复内部使用时,组件运行良好,但当我尝试向上或向下移动行时,在内部重复 XBL 控件不会更改状态。
xxforms-iteration-moved 事件在移动的行上触发,但不会在此移动期间更改位置的行上触发。例如,如果我将第 3 行移动到第 2 行,则 xxforms-iteration-moved 在第 3 行上触发,但我想重新初始化第 2 行中的组件,并且我的状态保存在 javascript 中。
我认为 xxforms-iteration-moved 应该在改变位置的两行上触发?这实际上是涉及两行的交换。请给出意见。
编辑:我正在使用 Orbeon Form Runner
到什么组件xxforms-iteration-moved
发送是如何发送的问题xxforms-iteration-moved
被定义为。现在,它被分派到移动的迭代内的控件。您可能需要的是处理xforms-enabled
事件,除了xxforms-iteration-moved
。考虑以下示例:您从包含“a、c、d”的列表开始。如果在“a”之后插入“b”,则新的“b”会得到一个xforms-enabled
和“c,d”各得到一个xxforms-iteration-moved
。因此,通过对这两个事件做出反应,您应该能够根据需要(重新)初始化您的组件。
<xhtml:html xmlns:xhtml="http://www.w3.org/1999/xhtml"
xmlns:xforms="http://www.w3.org/2002/xforms"
xmlns:xxforms="http://orbeon.org/oxf/xml/xforms"
xmlns:ev="http://www.w3.org/2001/xml-events"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:fr="http://orbeon.org/oxf/xml/form-runner">
<xhtml:head>
<xhtml:title>Iteration moved</xhtml:title>
<xforms:model>
<xforms:instance>
<instance>
<letter>a</letter>
<letter>c</letter>
<letter>d</letter>
<letter>e</letter>
</instance>
</xforms:instance>
</xforms:model>
</xhtml:head>
<xhtml:body>
<fr:button>
<xforms:label>Insert b</xforms:label>
<xforms:insert ev:event="DOMActivate" nodeset="letter" at="1" position="after" origin="xxforms:element('letter', 'b')"/>
</fr:button>
<fr:button>
<xforms:label>Delete c</xforms:label>
<xforms:delete ev:event="DOMActivate" nodeset="letter[. = 'c']"/>
</fr:button>
<xforms:repeat id="letter-repeat" nodeset="letter">
<xforms:output id="letter" value=".">
<xforms:message ev:event="xxforms-iteration-moved" level="modal" value="concat('xxforms-iteration-moved : ', .)"/>
<xforms:message ev:event="xforms-enabled" level="modal" value="concat('xforms-enabled : ', .)"/>
</xforms:output>
</xforms:repeat>
</xhtml:body>
</xhtml:html>
我应该补充一点,如果您希望您的组件在重复中使用(并且迟早每个组件都会如此),那么现在,由于重复在客户端的工作方式,如果您正在做一些工作来初始化组件xforms-enabled
,您很可能也需要这样做xxforms-iteration-moved
。例如,参见这是如何完成的 http://github.com/orbeon/orbeon-forms/blob/b97726230fbe380c20e7c1dab438f140cf846fde/src/resources-packaged/xbl/orbeon/button/button.xbl#L70 in the fr:button
成分。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)