Juicer模板引擎,怎么在模板内写JavaScript代码?

发布于 2022-09-05 20:31:53 字数 717 浏览 18 评论 0

Juicer模板代码:

<script id="tpl" type="text/template">
    <ul>
        {@each list as it,index}
            <li>${it.name} (index: ${index})</li>
        {@/each}
        {@each blah as it}
            <li>
                num: ${it.num} <br />
                {@if it.num==3}
                    {@each it.inner as it2}
                        ${it2.time} <br />
                    {@/each}
                {@/if}
            </li>
        {@/each}
    </ul>
</script>

以前用 jQuery Templates 的时候,模板内很容易写JavaScript代码,用Juicer改怎么办?
例如:在模板内应用JSON.stringify();

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

我爱人 2022-09-12 20:31:54

..为何要在模板里面写js代码。数据为何不在渲染模板传入参数前就处理好。
实在不行就写自定义函数,不想注册全局方法就是写内联辅助函数。
文档

萌酱 2022-09-12 20:31:54

暂时找到的方法:

// 通过`juicer.register`创建模板内引用方法
juicer.register('juicer_stringify', function(jsonObj) {
    return JSON.stringify(jsonObj);
});
//模板引用方法
{@each list as it,index}
    <tr jsonstr="{{=it|juicer_stringify}}">
        <td>
            <div class="ui radio checkbox">
                <input type="radio" name="selectItem" tabindex="0" class="hidden">
            </div>
        </td>
        <td>{{=it.ROLENAME}}</td>
        <td>{{=it.ROLEID}}</td>
        <td>{{=it.DESCRIPTION}}</td>
    </tr>
{@/each}

虽然解决了问题,但是感觉Juicer模板不能写JavaScript代码,相比jQuery Templates是一个小的不足。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文