2014-01-06 23 views
9

Ich habe eine Jsrender Vorlage. Wenn die Vorlage gerendert wird, möchte ich eine JavaScript-Funktion aufrufen, um einige Daten zu bearbeiten.Rufen Sie Javascript-Funktion von JSRender

Hier ist meine JSRender Vorlage.

<tr class="template-download"> 
    <td class="size"> 
     <span>{{:size}}</span> 
    </td> 
</tr> 

Jetzt möchte ich :size Wert auf JavaScript-Funktion zu übergeben und den Rückgabewert erhalten. So kann ich den Rückgabewert anstelle von :size Wert anzeigen.

Meine JavaScript-Funktion ist

function getSize(size) { 
    var megabytes = size/(1024 * 1024); 
    return megabytes.toFixed(2) + "MB"; 
} 

Wie kann ich dies tun?

Antwort

16

Sie können dies tun, indem eine Hilfsfunktion verwenden. Wenn Sie machen aufrufen, können Sie definieren und eine Hilfsfunktion ‚in‘ Vorlage übergeben:

$("#tmpl").render(data, 
        { getSize: function(size) { 
           var megabytes = size/(1024 * 1024); 
           return megabytes.toFixed(2) + "MB"; 
           } 
        } 
       ); 

in Ihrer Vorlage Dann rufen Sie die Hilfsfunktion wie folgt aus:

<tr class="template-download"> 
    <td class="size"> 
     <span>{{:size}} {{:~getSize(size)}} </span> 
    </td> 
</tr> 

Ich habe habe ein paar Annahmen darüber getroffen, wie deine Vorlage verwendet wird, aber das sollte dich in Schwung bringen.

This article hat einen Abschnitt zu Hilfsfunktionen, und @BorisMoore hat eine Reihe von guten Beispielen auf seinem jsViews site.

+0

Ja, danke - das JsViews site link (http://www.jsviews.com/#helpers) ist der beste aktuelle Dokumentationslink dafür. – BorisMoore