2014-09-25 72 views
0

我不熟悉underscore模板。我试图用3个内容元素打印一个页面,每个页面显示3个数据。如何在内容模板循环中重新使用页眉,页脚模板

content中的每一个都需要有一个标题并继续使用它们。最后一个应该有页脚模板而不是继续。

我不知道如何实现这一点...任何人都可以帮助我吗?

这里是我的尝试:

<script type="text/template" id="header"> 
    <div id="header"> 
     <h6>this is Header</h6> 
     <span><% students.name[0] %></span> 
    </div> 
</script> 
<script type="text/template" id="content"> 
    <div id="content"> 
    <h6>Content</h6> 
    <% _.each(students, function (item, index) { %> 
     <% if(index % 3 == 0) { %> 
      <% return $('#header').html() %> 
     <% } %> 
     <li><%= item.name %></li> 
    <% }) %> 
      </div> 
</script> 

<script type="text/template" id="continue"> 
    <span>Continue....</span> 
</script> 

<script type="text/template" id="footer"> 
    <div id="footer> 
    <span>End of Document</span> 
</div> 
</script> 

没有运气。任何人请帮助我?

Live Demo

回答

2

它看起来对我来说,你的主要问题是如何评价递归模板。这工作正常,你只是想小心使用<%= %>而不是<% %>,并传递给他们应该有权访问的任何参数,当被父模板调用时。

// http://jsfiddle.net/uwmbznxb/1/ 
<script type="text/template" id="header"> 
<div id="header"> 
    <h6>this is Header</h6> 
    <span><%= name[0] %></span> 
</div> 
</script> 
<script type="text/template" id="content"> 
    <div id="content"> 
    <h6>Content</h6> 
    <% _.each(students, function (item, index) { %> 
     <% if(index % 3 == 0) { %> 
      <% if (index) { %> 
        <%= _.template($('#continue').html())(item) %> 
      <% } %> 
      <%= _.template($('#header').html())(item) %> 
     <% } %> 
     <li><%= item.name %></li> 
    <% }) %> 
     <%= _.template($('#footer').html())({}) %> 
      </div> 
</script> 
// other templates .. 
+0

我接受。但页脚不是在那里印刷..这里是小提琴:http://jsfiddle.net/r7bu6o3n/2/ - 你可以请改变吗? – 3gwebtrain 2014-09-26 11:33:33

+0

@ 3gwebtrain你有错字关闭#页脚的ID,我已经在http://jsfiddle.net/uwmbznxb/1/在我的回答中修复了它 – lossleader 2014-09-26 21:16:14

+0

谢谢你,你是对的。我尝试了与我的模板相同的内容,但是页脚中的“全部完成”不是作为最后一个语句打印的。而是在表格之前打印。这里是生活:http://jsfiddle.net/ffk5raqL/ - 如果你不是我的,你能帮我解决这个..?提前致谢。无论我做错什么,请纠正我。 – 3gwebtrain 2014-09-27 05:54:05