2014-01-06 114 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