2014-01-06 75 views
9

我有一個jsrender模板。當模板呈現時,我想調用JavaScript函數來操作一些數據。來自JSRender的調用javascript函數

這是我的JSRender模板。

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

現在我想將:size的值傳遞給javascript函數並獲取返回值。所以我可以顯示返回值而不是:size值。

我的JavaScript函數是

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

我怎樣才能做到這一點?

回答

16

您可以通過使用一個輔助函數做到這一點。當你調用渲染,您可以定義並通過一個輔助功能「到」你的模板:

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

然後,在你的模板,您可以調用輔助函數是這樣的:

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

我已經對你的模板如何被使用做了一些假設,但這應該會讓你走。

This article有一個與幫助函數有關的部分,@BorisMoore在他的jsViews site上有很多很好的例子。

+0

是的,謝謝 - 即JsViews網站鏈接(http://www.jsviews.com/#helpers)是目前最好的文檔鏈接。 – BorisMoore