参数配置方法是 juicer.set,该方法接受两个参数或一个参数:
juicer.set('cache',false),即是设置 cache为 falsejuicer.set({cache:false}),系统将遍历这个对象的属性来设值我们可以配置一些参数选项,包括 cache、 strip、 errorhandling、 detection;其默认值都是 true;我们还可以修改模板的语法边界符,如 tag::operationOpen等。具体可配置的项可以参看其源代码。
juicer.options = { // 是否缓存模板编译结果 cache: true, // 是否清除空白 strip: true, // 是否处理错误 errorhandling: true, // 是否检测变量是否定义 detection: true, // 自定义函数库 _method: __creator({ __escapehtml: __escapehtml, __throw: __throw, __juicer: juicer }, {})
};选项解析如下:
cache是否缓存编译结果(引擎对象)。缓存的结果存于 juicer.__cachestrip是否清除模板中的空白,包括换行、回车等errorhandling是否处理错误detection开启后,如果变量未定义,将用空白字符串代替变量位置,否则照常输出,所以如果关闭此项,有可能造成输出 undefined_method存储的是用户注册的自定义函数,系统内部创建的自定义函数或对象有 __escapehtml处理HTML转义、 __throw抛出错误、 __juicer引用 juicer。 __creator方法本文最末讲解在 Node.js 环境中, cache默认值是 false,请看下面代码
if(typeof(global) !== 'undefined' && typeof(window) === 'undefined') {
juicer.set('cache', false);
}这段代码在结尾处可以找到。
此外,还有一个属性是 juicer.options.loose,默认值为 undefined(没有设置),当其值不为 false(此亦系统默认)时,将对 {@each}、 {@if}、 {@else if}、 ${}、 {@include}等中的变量名和自定义函数名进行校验,给其中使用到的变量、函数定义并添加到模板的开头,以保证能够顺利使用。
所以,如果我们更改此设置,可能造成系统错误
// 这些操作应当避免,否则会造成系统错误
// 将`juicer.options.loose`设为`false`
// juicer.set('loose',false);https://github.com/PaulGuo/Juicer