从JsRender调用JavaScript函数

时间:2014-01-06 10:41:38

标签: javascript jquery jsrender

我有一个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";
}

我该怎么做?

2 个答案:

答案 0 :(得分:17)

您可以使用辅助功能执行此操作。当您调用render时,您可以定义帮助函数并将其传递到您的模板中:

$("#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上有很多很好的例子。

答案 1 :(得分:0)

我相信你必须使用辅助函数。请参阅下面的两个参考。第二个是一个完全刷新的例子。

http://borismoore.github.io/jsrender/demos/step-by-step/09_helper-functions.html