XForms/绑定多个实例
外观
< XForms
您通常希望能够绑定到不同模型中的不同实例。此示例程序向您展示如何执行此操作。创建分离的模型对于允许干净的提交至关重要。您应该始终构建,以便您的提交数据位于单个模型中。但这会在引用数据元素时创建问题,而无需指定该实例属于哪个模型。
请注意,在下面的示例中,group 元素包含每个模型的输出。
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:xf="http://www.w3.org/2002/xforms"
xmlns:foobar="http://www.example.com">
<head>
<title>Binds to Multiple Instances in Multiple Models</title>
<style type="text/css">
@namespace xf url("http://www.w3.org/2002/xforms");
body {font-family: Helvetica,sans-serif}
xf|label {font-weight: bold}
</style>
<xf:model id="model-1">
<xf:instance id="instance-1-1" xmlns="">
<Data>
<Message>Hello World Model 1 Instance 1!</Message>
</Data>
</xf:instance>
<xf:bind id="bind-1-1" nodeset="instance('instance-1-1')/Message" />
<xf:instance id="instance-1-2" xmlns="">
<Data>
<Message>Hello World Model 1 Instance 2!</Message>
</Data>
</xf:instance>
<xf:bind id="bind-1-2" nodeset="instance('instance-1-2')/Message" />
</xf:model>
<xf:model id="model-2">
<xf:instance id="instance-2-1" xmlns="">
<Data>
<Message>Hello World Model 2 Instance 1!</Message>
</Data>
</xf:instance>
<xf:bind id="bind-2-1" nodeset="instance('instance-2-1')/Message" />
<xf:instance id="instance-2-2" xmlns="">
<Data>
<Message>Hello World Model 2 Instance 2!</Message>
</Data>
</xf:instance>
<xf:bind id="bind-2-2" nodeset="instance('instance-2-2')/Message" />
</xf:model>
</head>
<body>
<h1>Model 1</h1>
<xf:group model="model-1">
<xf:output ref="instance('instance-1-1')/Message">
<xf:label>ref="instance('instance-1-1')/Message":</xf:label>
</xf:output>
<br/>
<xf:output bind="bind-1-1">
<xf:label>bind="bind-1-1":</xf:label>
</xf:output>
<br/>
<xf:output ref="instance('instance-1-2')/Message">
<xf:label>ref="instance('instance-1-2')/Message":</xf:label>
</xf:output>
<br/>
<xf:output bind="bind-1-2">
<xf:label>bind="bind-1-2":</xf:label>
</xf:output>
</xf:group>
<h1>Model 2</h1>
<xf:group model="model-2">
<xf:output ref="instance('instance-2-1')/Message">
<xf:label>ref="instance('instance-2-1')/Message":</xf:label>
</xf:output>
<br/>
<xf:output bind="bind-2-1">
<xf:label>bind="bind-2-1":</xf:label>
</xf:output>
<br/>
<xf:output ref="instance('instance-2-2')/Message">
<xf:label>ref="instance('instance-2-2')/Message":</xf:label>
</xf:output>
<br/>
<xf:output bind="bind-2-2">
<xf:label>bind="bind-2-2":</xf:label>
</xf:output>
</xf:group>
</body>
</html>
请注意,您不能跨模型进行绑定。这意味着需要访问多个模型中的实例数据的复杂计算需要在进行计算之前将它们复制到单个模型中。