【问题标题】:How to re-use the header, footer template on content template loop如何在内容模板循环中重用页眉、页脚模板
【发布时间】:2014-09-25 13:00:21
【问题描述】:

我对@9​​87654322@ 模板不是很熟悉。我正在尝试打印一个包含 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

【问题讨论】:

    标签: jquery templates underscore.js underscore.js-templating


    【解决方案1】:

    在我看来,您的主要问题是如何递归评估模板。这很好用,您只需要小心使用&lt;%= %&gt; 而不是&lt;% %&gt; 并传递他们在父模板调用时应该有权访问的任何参数。

    // 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 ..
    

    【讨论】:

    • 我接受。但是页脚没有打印在那里..这是小提琴:jsfiddle.net/r7bu6o3n/2 - 你能改变一下吗?
    • @3gwebtrain 你有一个错字关闭#footer 的 id,我已经在jsfiddle.net/uwmbznxb/1 在我的回答中修复了它
    • 谢谢,你是对的。我对我的模板进行了同样的尝试,但是页脚中的“全部完成”没有作为最后一个语句打印。而是在表格之前打印。这是现场直播:jsfiddle.net/ffk5raqL - 如果你不是我的,你能帮我解决这个问题吗?提前致谢。无论我做错了什么,请纠正我。
    • @3gwebtrain 你刚刚离开了一个悬空的桌子。打开的表格会拉入后面的元素并将它们呈现在普通表格元素之上。 jsfiddle.net/ffk5raqL/1
    • 是的。你是对的。非常感谢你。为我节省了很多时间!
    猜你喜欢
    • 2016-08-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多