アンダースコアテンプレートでクロージャーを使用することに価値があるかどうか疑問に思っています...カウンターなどを追跡するとします。ここに私が意味することの簡単な例があります:
<%
(function( models ){
var length = models.length-1,
section = "";
_.each( models, function ( item, index ) {
if (index === 0) {
section = "top";
} else if (index === length) {
section = "bottom";
} else {
section = "center";
}
%>
<div class="container">
<div class="gradiantDiv <%= section %>content">
<a href="/#customer/<%= item._id %>">
<address>
<strong><%= item.name %></strong><br>
<%= item.addr1 %><br>
<%= item.city %>, <%= item.state %> <%= item.zip %><br>
<abbr title="Phone">P:</abbr> <%= item.phone %>
</address>
</a>
</div>
<div class="gradiantDiv <%= section %>action">
<i class="icon-chevron-right"></i>
</div>
</div>
<%
});
})( models );
%>
それとも、_.each の前にクロージャなしで「長さ」や「セクション」などの変数を宣言するほうがよいのでしょうか? またはそれはまったく問題ですか?
ありがとう!