gpt4 book ai didi

underscore.js 预编译模板使用

转载 作者:行者123 更新时间:2023-12-02 03:28:45 25 4
gpt4 key购买 nike

我想使用预编译的 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

最佳答案

是的,source 属性将编译后的模板作为字符串返回。您可以将该字符串写入定义 JavaScript 对象文字的文件,如下所示:

window.JST = { };
JST.some_name = function(obj){ ... };
// The rest of the compiled template functions go here

然后,像任何其他 JavaScript 文件一样将其加载到浏览器中,最终您将在 JST 中得到一堆已编译的模板函数:

var html = JST.some_name(data);

当然,您可以根据需要构建 JST 定义,这只是说明整体方法的简单方法。

请记住,字符串是否只是像任何其他文本 block 一样进行操作的文本(例如将其写入文件),或者它是否是 JavaScript 源代码,取决于谁在解释该字符串。

关于underscore.js 预编译模板使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18755292/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com