コンパイル済みの underscore.js テンプレートを使用したい。結果を使用_.template().source
してファイルに保存します。しかし、このテンプレートの使い方がわかりません。プリコンパイルされたテンプレートは文字列であり、関数にキャストできません。を使用しようとしましeval
たが、常に解析エラーが返されます。
例えば:
<div>
<% for(var i = 0; i < 5; i++){ %>
<div><%=i%></div>
<% } %>
</div>
標準使用:
_.template(tpl).({});
結果:
<div>
<div>0</div>
<div>1</div>
<div>2</div>
<div>3</div>
<div>4</div>
</div>
プリコンパイル:
_.template(tpl).source
プリコンパイル済みテンプレート:
"function(obj){
var __t,__p='',__j=Array.prototype.join,print=function(){__p+=__j.call(arguments,'');};
with(obj||{}){
__p+='<div>\n\t';
for(var i = 0; i < 5; i++){
__p+='\n\t\t<div>'+
((__t=(i))==null?'':__t)+
'</div>\n\t';
}
__p+='\n</div>\n';
}
return __p;
}"
プリコンパイル済みテンプレートの実行:
var a = eval(tplc);
a({});
エラー:
Error
line: 1
message: "Parse error"
sourceId: 139746789246216
__proto__: SyntaxError