2017-03-16 3 views
1

Ich habe ein Textfeld namens Inhalt, die ich einen Ausschnitt von anzeigen muss.Kürzen Sie Text in Phoenix Framework

Was ist der beste Weg, dies zu tun?

Etwas wie:

<% post.content.slice(0..50) %> 

ist das, was ich im Sinn habe; Dies führt jedoch zu einem Argumentfehler.

Wie werden die ersten 50 Zeichen des Inhalts-Textfelds am besten angezeigt?

Alternativ - könnte ich ein Auszugfeld erstellen, wenn die Daten in der Datenbank erstellt/gespeichert werden?

Jede Hilfe wird geschätzt. Danke im Voraus.

+0

'String.slice (post.content, 0..50)' bitte diese Antwort überprüfen - http : //stackoverflow.com/a/39395092/3102718 –

+1

Es gibt auch ein Paket, das eine abgeschnittene Funktion und mehr bietet: https://github.com/ikeikeikeyike/phoenix_html_simplified_helpers – Johannes

Antwort

4
defmodule MyApp.StringFormatter do 

    def truncate(text, opts \\ []) do 
    max_length = opts[:max_length] || 50 
    omission = opts[:omission] || "..." 

    cond do 
     not String.valid?(text) -> 
     text 
     String.length(text) < max_length -> 
     text 
     true -> 
     length_with_omission = max_length - String.length(omission) 

     "#{String.slice(text, 0, length_with_omission)}#{omission}" 
    end 
    end 
end 

Das ist, was ich in meiner app, ich glaube, ich es schamlos von irgendwo eingefügt kopieren, aber es funktioniert gut und natürlich können Sie es an Ihre Bedürfnisse anpassen.

Aber wenn Sie nicht brauchen, diese Phantasie ommision Sache dann

String.slice(post.content, 0..50) 

sollte gut funktionieren

Verwandte Themen