クライアント側のテンプレートを使用して最初のサイトに取り組んでいますが、これまでのところうまくいっています。以下のコードで最高のパフォーマンスを達成したいと考えています。
私はこの形式でjsonを与えられています:
[
{
"slidenumber": "slide0",
"title": "Sample Data 1",
"slideDelay": "2000",
"months": [
{
"Jan": "10.3",
"Dec": "65",
"Nov": "87",
"Oct": "80",
"Sep": "70",
"Aug": "100"
}
]
},
{
"slidenumber": "slide1",
"title": "Sample Data 2",
"slideDelay": "2000",
"months": [
{
"Jul": "10",
"Jun": "20",
"May": "30",
"Apr": "40",
"Mar": "50",
"Feb": "60"
}
]
}
]
以下の underscore.js テンプレートを使用します。
_.each(slides, function(slide){ %>
<li data-slide-delay="<%= slide.slideDelay %>">
<h1><%= slide.title %></h1>
<table class="table">
<thead>
<tr>
<%
_.each( slide.months, function(month) {
if (_.isObject(month)) {
_.each(month, function(value, key) {%>
<th><%= key %></th>
<%})
}
});%>
</tr>
</thead>
<tbody>
<tr>
<%
_.each( slide.months, function(month) {
if (_.isObject(month)) {
_.each(month, function(value, key) {%>
<td><%= value %></td>
<%})
}
});%>
</tr>
</tbody>
</table>
</li>
基本的に、上記のデータを使用してスライドショーを作成しているため、各「スライド」には特定のフィールドのタイトル、遅延などがありますが、月にはデータが含まれています。私は<li>
for each スライドを構築しており、その中に Horizontal 、<table>
そのテーブルで<th>
月 (つまり、1 月、2 月、3 月など) を構築しています。<td>
上記のように同じデータを使用して (ただし異なる値をエコーする) 2 つのステートメントを実行するのではなく_.(each
、目的の出力を実現するための最良の方法は何ですか?