选择它的缘由是它支持服务器端将模板文件编译为js代码,这样作的好处: html
同时具备比mustache更强大的语法 后端
3/25更新:更大的缺点:没有if( a==b) 只有 if(a),这样就致使也没有else if。(if 的实现不是原生js ,而是helper函数调用,效率低)目前没有很好的解决办法。
服务器
同时做者有洁癖,意见很难被采纳,正式项目使用需谨慎。 函数
但它也有本身的缺点:helper与变量不能从字面上区分(当没有任何参数的时候,如:{{fun}})。 spa
简单的解决办法:在书写无参数的helper时,附带一个无用的参数如:{{func 1}} 这样就会被识别为helper不会出现if判断了(能够不用看下边的balabala了)
code
以致于在后端编译的时候出现了一系列使人费解的配置: htm
-k, --known Known helpers [string]
-o, --knownOnly Known helpers only [boolean]
string
-k helper_name 将 helper_name 定性为helper 编译
-o 没有用-k 添加过的全部{{string}}都会被理解为变量 模板
例子:
{{str}}
没有-k,-o时:
if("str" in helpers){ helpers.str(); }else{ html+=data.str; }
有 -k str 时:
helpers.str();
有 -k ntstr -o 时:
html+=data.str;
helpers.str();