juicer是一个javascript轻量级模板引擎。
使用方法
编译模板并根据数据立即渲染出结果
1 juicer(tpl, data);
仅编译模板暂不渲染,返回一个可重用的编译后的函数
1 var compiled_tpl = juicer(tpl);
根据给定的数据对之前编译好的模板进行渲染
1 var complied_tpl = juicer(tpl); 2 var html = complied_tpl.render(data);
注册/注销自定义函数(对象)
1 juicer.register(‘function_name’, function); 2 juicer.unregister(‘function_name’);
默认参数配置
1 { 2 cache: true [false]; 3 script: true [false]; 4 error handling: true [false]; 5 detection: true [false]; 6 }
修改默认配置,逐条修改
1 juicer.set('cache', false);
修改默认配置,批量修改
1 juicer.set({ 2 'script': false, 3 'cache': false 4 })
Juicer 默认会对编译后的模板进行缓存,从而避免同一模板多次数据渲染时候重复编译所耗的时间, 如无特殊需要,强烈不建议关闭默认参数中的 cache,这么做将会令 Juicer 缓存失效从而降低性能.
*注释 {# 注释内容}
{# 这里是注释内容}
* 转义/避免转义
${变量} 在输出之前会对其内容进行转义,如果你不想输出结果被转义,可以使用 $${变量} 来避免这种情况。
var json = {
value: '<strong>juicer</strong>'
};
var escape_tpl='${value}';
var unescape_tpl='$${value}';
juicer(escape_tpl, json); //输出 '<strong>juicer</strong>'
juicer(unescape_tpl, json); //输出 '<strong>juicer</strong>'
*循环遍历 {@each} ... {@/each}
- 遍历数组,${index}当前索引
{@each list as item, index} ${item.prop} ${index} //当前索引 {@/each}
一个完整的例子
HTML 代码:
<script type="text/template" id="provinceScript">
<option value="">请选择</option>
<{each province as it}>
<option value="<{$it.id}>"><{$it.province}></option>
<{/each}>
</script>
Javascript 代码:
var shtml = $('#provinceScript').html();
var svalue = juicer(shtml,reg);
$('select[name=province]').html(svalue);