参数配置方法是 juicer.set
,该方法接受两个参数或一个参数:
juicer.set('cache',false)
,即是设置 cache
为 false
juicer.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.__cache
strip
是否清除模板中的空白,包括换行、回车等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