下划线js - 重新编号模板呈现的元素属性

时间:2012-05-07 15:08:24

标签: javascript jquery templates underscore.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 个答案:

答案 0 :(得分:1)

在不侵入代码的情况下执行此类操作的最佳方法是使用模型(列表)作为所谓的“引用”。


您应该将Backbone.js与Underscore.js结合使用: Backbone.js documentation

有一个TODO示例应用程序可以完全按照您的要求执行:


设置可能需要一些时间,但是当你完成后,你会更快地完成工作。