我正在尝试创建一个弹出窗口以允许用户编辑实体的详细信息。有一个人列表(重复控件),当您单击他们的任何名字时,弹出窗口应该让您编辑该人的另一个数据。像这样的图:
我设法做到这一点的唯一方法是在表单中创建一个隐藏的 div,并使用 JQuery-UI 显示它。所以,这个 div 绑定到一个“临时人”,一旦编辑,我将这些临时值复制到最终列表中。像这样的东西:
<people>
<person name="Alice" age="32" phone="+33..."/>
<person name="Mike" age="27" phone="+54..."/>
<person name="Aureline" age="60" phone="+33..."/>
</people>
<tmpPerson name="" age="" phone=""/>
但问题是,只需添加新寄存器很容易,因为我只需在控件中加载空白值(tmpPerson 为空白),一旦完成,我只需要使用原点进行插入......但在这种情况下注册表已经存在,加载值并不容易......我尝试使用 IF 但它不起作用(既不是警报)也没有“else”语句。那么,如何确定是否必须加载注册表?
<xf:trigger id="loadExistingValues">
<xf:label>Load values</xf:label>
<xf:action ev:event="DOMActivate"
if="not(instance('people')/person[@id='Mio')">
<xf:alert>Here should be the code for a new person creation</xf:alert>
</xf:action>
</xf:trigger>
我的意思是,我知道我可以通过 Javascript 读取数据模型,搜索名为“Mio”的人,如果确实存在,也可以通过 JS 加载值,但如果我必须插入一个新的“人”,我可以'不只用 JS 来做,所以我唯一能想到的就是用 XForms 动作创建一个触发器,然后从 JS 触发它。但是所有这些东西听起来都很复杂。也许任何人都可以帮助我提出想法或一个简单的例子?我找不到这样的演示!