使用不同数据上的`tr`元素进行下划线模板迭代,得到错误的结果

时间:2014-09-09 14:10:24

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

在我的模板中,我有5个标题,我正在使用" th"为了那个原因。我想在下面打印两个不同的数据。为此,我尝试了这个,但给出了错误的输出...

任何人帮我解释这个请求吗?

    <% _.each(obj.totalForMonths.totalformonths.monthData, function(item) { %> //data 1
                            <tr> //printing 3 tds
                                <td><%= item.month %></td>
                                <td><%= item.amount %></td>
                                <td><%= item.count %></td>

                            <%  }) %>

                            <% _.each(obj.totalForMonths.previousScheme.monthData, function(item) { //data 2 %>
//printing 2 tds!
                                    <td><%= item.amount %></td>
                                    <td><%= item.count %></td>

                            <%  }) %>

                            </tr>   //closing the tr after appended all 5

但它起作用,首先它分别循环所有3和2个循环。它让人难看。如何在每个迭代器上打印tr内的所有五个?

有人帮我吗?

1 个答案:

答案 0 :(得分:0)

你可以合并数组&#34; obj.totalForMonths.totalformonths.monthData&#34; &安培; &#34; obj.totalForMonths.previousScheme.monthData&#34;如果长度相同:

    <% 
        var a = _.map(obj.totalForMonths.totalformonths.monthData, function(e){
            return [e.month, e.amount, e.count]
        });
        var b = _.map(obj.totalForMonths.previousScheme.monthData, function(e){
            return [e.amount, e.count]
        });
        rows = _.map(_.zip(a,b), function(e){
            return _.flatten(e)
        });
    %>
    <% _.each(rows, function(row) { %>
        <tr>
            <% _.each (row, function(column){ %>
                <td><%= column %></td>
            <% }) %>            
        </tr>
    <%  }) %>