2012-05-07 52 views
0

我有一個表單,具有無限數量的用戶添加輸入的能力。下劃線js - 重新編號模板呈現的元素屬性

作爲一個例子,想象一個帶有「添加引用」部分的工作應用程序。有一個「+」按鈕,以及任何已經添加的參考旁邊的「刪除」。

這裏有一個例子模板

<script type="text/template" id="referenceTmpl"> 
    <div> 
     <h2>Reference No. <%= index %></h2><a id="removeRef<%= index %>">Remove</a> 
     Name: <input type="text" name="references[<%= index %>].name" /> 
     Email: <input type="text" name="references[<%= index %>].email" /> 
     (...) 
    </div> 
</script> 

當任何「參考」被刪除,我想重新編號等。由於表單輸入可能已經包含未保存的數據,因此我需要在不完全重新呈現模板的情況下執行此操作。我想以一種可行的方式來做到這一點(每個輸入不需要太多額外的代碼),因爲解決方案可能用於更復雜的應用程序。

隨意假設我使用jQuery,如果解決方案可以從中受益。

任何想法?

回答

1

在不侵入代碼的情況下做這種事情的最好方法是爲所謂的「引用」使用模型(列表)。


你應該嘗試Backbone.js的結合Underscore.js: Backbone.js documentation

有一個TODO例如應用程序,不正是你想要什麼:


設置可能需要一些時間,但完成後,您可以更快地完成工作。

+0

我可能是錯的,但不會在骨幹執行這種事情遭受同樣的問題?我認爲重新渲染模板(「更改」)會將所有內容都擦掉。還是你建議管理我的所有屬性在一個JS對象中,並不斷保存回onkeyup對象(包括模板中的道具)。 – gerges

+0

主幹網始終將您的模型與您的視圖保持一致。當骨幹模型(列表)中的某些內容發生變化時。模型視圖將被重新渲染。所以你可以使用類似index ++的東西在視圖生成時重新編號列表。 –