選擇它的緣由是它支持服務器端將模板文件編譯爲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();