【问题标题】:Call JavaScript function from JsRender从 JsRender 调用 JavaScript 函数
【发布时间】:2014-01-06 10:41:37
【问题描述】:

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

我该怎么做?

【问题讨论】:

    标签: javascript jquery jsrender


    【解决方案1】:

    您可以使用辅助函数来做到这一点。当你调用 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 上有很多很好的例子。

    【讨论】:

    【解决方案2】:

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

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

    【讨论】:

    猜你喜欢
    • 2021-07-09
    • 1970-01-01
    • 1970-01-01
    • 2011-07-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-20
    • 2015-07-11
    • 2010-10-28
    相关资源
    最近更新 更多