2017-08-28 1 views
2

Ich muss viele Elemente in einer HTML-Seite auflisten. Es gibt zu viele Elemente, die gleichzeitig angezeigt werden können. Ich habe Tools gesehen, die mit Ecto arbeiten, um Pager in EEX-Vorlagen zu handhaben. In meinem Controller ziehe ich diese Daten jedoch aus einer externen Datenquelle und kann sie nicht mit Ecto abfragen. Vorlagendatei inventory.html.eex unten.Pager in EEX-Vorlagen Ohne Ecto-Elixir und Phoenix

<div class="section-content"> 
 
    <div class="section-row"> 
 
    <div class="section-cell"> 
 
     <h3> Current Inventory: </h3> 
 
     <table class="table"> 
 
     <thead> 
 
      <tr> 
 
      <th>Product Title</th> 
 
      <th>Product ID</th> 
 
      </tr> 
 
     </thead> 
 
     <tbody> 
 
     <%= for product <- @products do %> 
 
      <tr> 
 
      <td><%= product["title"] %></td> 
 
      <td><%= product["id"]%></td> 
 
     </tr> 
 
     <% end %> 
 
     </tbody> 
 
     </table> 
 
    </div> 
 
    </div> 
 
</div>

Was für den Umgang mit Paginierung dieser Daten ist eine gute Lösung?

Antwort

4

Sie könnten die Bibliothek scriviner_html für Paginierungshelfer in Ihren Vorlagen verwenden. Dies erfordert nur das Füllen einer %Scriviner.Page{}-Struktur von Ihrem Controller und die Weiterleitung an render.

Die Page Struktur ist ganz einfach, so können Sie aus einer Liste oder API-Antwort von der externen Quelle füllen:

defstruct [:entries, :page_number, :page_size, :total_entries, :total_pages]