我正试图在我的下划线模板中为.each
循环添加一个唯一的id,但是当我使用.uniqueId('XX')
时,尽管它确实有效,但它一直在变化,这不是我真正希望它做的事情。
这是我的Undercore模板代码,
<script class='BasicText' type='text/template'>
<% _.each(Text, function(Text) { %>
<div contenteditable='true' id='<%= _.uniqueId('BasicText') %>' class='MyText'>
<%= Text.text %>
</div>
<% }); %>
</script>
它很好地从我的主干代码中加载,按照它所说的去做,它从我的数据库中加载简单的基本文本,并在我的页面上显示它。但是_.uniqueId不断更改它添加的结束数字,是的,它们是唯一的,但我不希望它们更改。
我还将div设置为可编辑,这样就可以编辑内容,然后重新发送到数据库进行更新。我的代码运行良好,当div中的内容发生变化时,它就会执行,但现在我的目标是div标记上的类。
这样做的问题是它在两个div标记上都运行(目前只有两个基本文本字段)。这就是为什么当内容发生变化时,我希望一次只针对一个标签。
那么,我可以对每个循环设置一些计数,然后将其添加到我的div标记中吗?
或者我可以在代码中使用_.uniqueId吗?我的意思是,因为_.uniqueId不断更改结束数字,它应该在运行时知道它使用了什么数字,对吧?(这里不确定)如果是,那么我可以不让我的代码使用相同的数字吗,即使它们改变了?
欢迎一切帮助。
谢谢。
_.each
的回调使用三个参数调用:迭代中的当前项、索引和原始列表。所以你需要的索引已经提供了,你可以更新你的模板来使用它
<script class='BasicText' type='text/template'>
<% _.each(Text, function(Text, Index) { %>
<div contenteditable='true' id='text-div-<%= Index %>' class='MyText'>
<%= Text.text %>
</div>
<% }); %>
</script>
此处提供文档。希望有帮助,加油!