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

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();

阅读 3.8k
2 个回答

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

暂时找到的方法:

// 通过`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是一个小的不足。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题