2016-06-02 8 views
0

Neu zu unterstreichen. Wie schreibe ich eine "each" -Funktion für jeden Beitrag, so dass nur der letzte Beitrag erscheint? Ich weiß, die Logik ist so etwasUnterstreichen Bedingungen und Operationen für diese Vorlage?

<% _.each(posts, function(post, index) { %> 
<% if(index % 3 == 0) { %> 

Aber ich möchte nur die letzte Post zu zeigen. Darüber hinaus versuche ich herauszufinden, die Logik, die ich in den Kommentaren vor jedem Abschnitt geschrieben habe, habe ich Probleme zu versuchen, herauszufinden, wenn/dann Logikcode, wenn nur ein Bild erscheint, wenn nur Text, und wenn dann ein Bild UND Text zusammen erscheint.

<!-- TEXT ONLY --> 
<p><%= post.message %></p> 
<!-- /TEXT ONLY --> 

<!-- IMAGE ONLY --> 
<img class="imgonly" src="<%= post.image %>"> 
<!-- /IMAGE ONLY --> 

<!-- TEXT + IMAGE --> 
<p><%= post.message %></p> 
<img class="imgtext" src="<%= post.image %>"> 
<!-- /IMAGE + IMAGE --> 

<!-- TEXT + IMAGE + LINK + LINK SUMMARY --> 
<p><%= post.message %></p> 
<p class="link"><a href="<%= post.link %>" target="_blank"><%= post.link_title %></a> - <%= post.link_summary %><\/p> 
<img class="imgtext" src="<%= post.image %>"> 
<!-- /IMAGE + IMAGE + LINK + LINK SUMMARY --> 

<!-- IMAGE + LINK + LINK SUMMARY --> 
<p class="link"><a href="<%= post.link %>" target="_blank"><%= post.link_title %></a> - <%= post.link_summary %></p> 
<img class="imgtext" src="<%= post.image %>"> 
<!-- /IMAGE + LINK + LINK SUMMARY --> 

<!-- PLACEHOLDER --> 
<p><i>There are currently no updates. Please check back soon.</i> </p> 
<!-- /INITIAL PLACEHOLDER -->    
+2

Verwenden '_.last (Beiträge)'? – slugonamission

+0

Ist das Umbrechen von _.last (Posts) um diesen Code herum der letzte Post, der in den Browser übertragen wird? Außerdem, wenn ich Hilfe mit der if/then Logikfrage bekommen könnte, die ich ursprünglich auch fragte, würde das hilfreich sein. –

Antwort

0

Ich glaube, Sie so etwas versuchen:

<% if (posts.length !== 0) {  
    var post = posts[posts.length-1]; 
%> 

<% if (post.message) { %> 
<!-- TEXT ONLY --> 
<p><%= post.message %></p> 
<!-- /TEXT ONLY --> 
<% } %> 

<% if (post.image) { %> 
<!-- IMAGE ONLY --> 
<img class="imgonly" src="<%= post.image %>"> 
<!-- /IMAGE ONLY --> 
<% } %> 

<% if (post.message && post.image) { %> 
<!-- TEXT + IMAGE --> 
<p><%= post.message %></p> 
<img class="imgtext" src="<%= post.image %>"> 
<!-- /IMAGE + IMAGE --> 
<% } %> 

... 

<% } %> 
+0

Können Sie diesen Teil erklären: <% if (posts.length! == 0) { var post = posts [posts.length-1]; %> –

+0

Nur eine Möglichkeit, das letzte Element sicher aus einem Array zu extrahieren. Wenn das Array leer ist, wird der gesamte Code komplett übersprungen (siehe zuletzt <% } %> am Ende). Wenn Array nicht leer ist, können wir sicher das letzte Element nach seinem Index holen und den ganzen Rest des Codes damit machen. –

+0

Ah ich sehe. Wie schreibe ich die Logik für diese Bedingung, '<% if (post.image) {%>' sollte nur dann rendern, wenn der Beitrag nur ein Bild hat, vs '<% if (post.message && post.image) { %> 'wird gerendert, wenn Text und ein Bild hochgeladen werden? Andernfalls wird das Bild zweimal hochgeladen, wenn nur ein Bild hochgeladen wird. –