2013-04-03 8 views
6

Wie kann ich Zahlen, Währungen oder Datumswerte in einer dust.js-Vorlage formatieren?Formatieren von Zahlen und Daten in dust.js (linkedin-fork)

Daten:

{ 
today: 'Wed Apr 03 2013 10:23:34 GMT+0200 (CEST)' 
} 

Vorlage:

<p>Today: {today} </p> 

wie auf diese Weise: (mit moment.js)

<p>Today: {moment(today).format('dd.MM.YYYY')}</p> 

Oder Runde einige Preis Werte *

Daten: {Preis: 56,23423425}

Vorlage:

Preis: {price.toFixed (2)}

Antwort

8

Sie wahrscheinlich gehen zu müssen, schreibe einen Helfer. Details darüber, wie ein Helfer zu schreiben sind hier zu finden:

Ihre Vorlage für einen Date-String würde wie folgt aussehen:

<p>Today: {@formatDate value="{today}"/}</p> 

Ihr Helfer wie das wäre etwas :

dust.helpers.formatDate = function (chunk, context, bodies, params) { 
    var value = dust.helpers.tap(params.value, chunk, context), 
     timestamp, 
     month, 
     date, 
     year; 

    timestamp = new Date(value); 
    month = timestamp.getMonth() + 1; 
    date = timestamp.getDate(); 
    year = timestamp.getFullYear(); 

    return chunk.write(date + '.' + month + '.' + year); 
}; 

Sie möchten ich hinzufügen n das Stück, um die führende Null vor dem Monat oder Datum zu erhalten.

1

Sie können einen Filter schreiben, um den Moment zu verwenden. stechen Sie so: dust.filters.formatDate = (Wert) => moment.utc (Wert) .format ('l H: mm'); wo in Ihrem Skript richtig. dann in Ihrem HTML, setzen Sie einfach | neben Ihrem Wert: {date | formatDate}