跳轉到內容

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>

請注意,您不能跨模型進行繫結。這意味著需要訪問多個模型中的例項資料的複雜計算需要在進行計算之前將它們複製到單個模型中。

下一頁: 繫結到範圍 | 上一頁: 條件動作
主頁: XForms
華夏公益教科書