向我的Undercore模板添加计数



我正试图在我的下划线模板中为.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>

此处提供文档。希望有帮助,加油!

最新更新