2013-02-10 116 views
0

我有一個記錄列表,例如地址。它使用以下html5/knockout代碼顯示。在記錄列表中編輯一行?

<section id="lists" data-bind="foreach: addresses, visible: addresses().length > 0"> 
    <article> 
     <div> 
      <button>Edit</button> 
      <span data-bind="text: DisplayAddress"></span> 
     </div> 
     <p class="error" data-bind="visible: ErrorMessage, text: ErrorMessage"></p> 
    </article> 
</section> 

我想說明的編輯輸入框()行下表編輯按鈕被點擊之後。有沒有辦法不生成一個大的HTML5代碼?

我想說明以下編輯 HTML的<div>下方點擊編輯按鈕後。 (未完成)

<div> 
    <table> 
     <tr> 
      <th>Street address</th><th>Apt#</th><th>City</th><th>State</th><th>Zip</th> 
     </tr> 
     <tr> 
      <td><input type="text" class="col1"/></td> 
      <td><input type="text" class="col2"/></td> 
      <td><input type="text" class="col3"/></td> 
      <td><input type="text" class="col4"/></td> 
      <td><input type="text" class="col5"/></td> 
     </tr> 
    </table> 
    <button data-bind="click: saveAddress">Save</button> 
    <button data-bind="click: cancelAdding">Cancel</button> 
</div> 
+0

您如何期望在不將其插入DOM的情況下顯示錶格,除非它已經存在於DOM中?真的不清楚你在問什麼。 – charlietfl 2013-02-10 15:15:32

+0

我對此不甚瞭解,但是可以使用Flash對象嗎? – 2013-02-10 15:23:14

+0

@charlietfl你是對的。我已經刪除了未插入的DOM要求。 – ca9163d9 2013-02-10 21:55:05

回答

1

有幾個合理的選擇:

1)使用if結合來控制呈現(不僅僅是HTML塊的可見性)。每行數據都有一個名爲isEditing的可觀察屬性。然後,添加行爲功能來控制編輯/取消/等。你的文章模板將包括類似以下內容:

<div data-bind="if:isEditing"> 
    <input type="text" data-bind="value: DisplayAddress" /> 
</div> 

2)如果它只是一個領域,你可能希望創建一個自定義綁定處理程序,增加了你想要的行爲的元素(它會動態地添加/刪除一個領域)。這項技術的Stackoverflow有幾個很好的例子。