2012-09-15 45 views
1

想知道在下劃線模板中使用閉包是否有任何價值...說跟蹤計數器或其他東西。下面是我的意思一個簡單的例子:在underscorejs模板中使用閉包

<% 
(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前關閉?或者它有什麼關係?

謝謝!

回答

0

我個人不知道創建變量的好處,而這些變量在模板之外是沒有意義的。

我們通常在優化或使代碼更具可讀性時創建變量。

(如

長度只使用一次。我認爲它更具可讀性和較少的工作到位使用它。我已經在同行籤評論被正確地罵只是爲了着想創建變量一些認爲易讀性。

部分被多次使用,並且需要額外的邏輯,所以它使一個很大的意義。

模式沒有做任何事情EXC ept強制解釋器創建一個新的指針,爲什麼當它在一個包含範圍內可用時將它傳入?

如果它使代碼更易讀,或優化的東西,然後我會說這是值得的。