主干模板:index.jst.eco到index.jst.ejs

backbone templates: index.jst.eco to index.jst.ejs

本文关键字:index jst eco ejs      更新时间:2023-09-26

具体问题:此代码在主干模板index.jst.eco中工作,但在index.jst.ejs 中不工作

<ui>
<% for entry in @entries.models: %>
<li> <%= entry.get('name') %></li>
<% end %>
</ui>

我想知道为什么(即如何为ejs修复它),更普遍地说,是否有关于如何在ejs模板中编写代码的全面文档?我找不到任何详细的东西。当我一直在玩ejs和eco时,我注意到:或括号的存在或不存在会产生巨大的影响,但我不知道如何知道何时使用。

我愿意使用jst.eco或jst.ejs,这取决于哪种语法有更好的文档。

刚刚遇到这个问题,下面是我的解决方案!

<% entries.each(function(entry){%>
  <li><%= entry.get('name') %></li>
<% });%>

这就是在jst.ejs.中编写eco代码的方式

   <% for (var i = 0; i < entries.length; i++) { %>
    <li> <%= entries.models[i].get('name') %></li>
    <% } %>

但是,我无法使用for entry in entries.models迭代器

据我所知,jst.eco格式是嵌入到jst模板中的CoffeeScript,而jst.ejs只能使用JavaScript。这就是为什么在您的情况下,它可以呈现这个JavaScript迭代:

<% for (var i = 0; i < entries.length; i++) { %>

但不是这个CoffeeScript交互:

<% for entry in @entries.models: %>