在jade中包含 其他前端模板(underscore)

最近项目中需要在后端使用的jade模板里包含前端用的underscore模板,最终写成下边这样:

script(type="text/template")#template
table.table
| <%var keys=Object.keys(item);_.forEach(keys,function(name,index){%>
tr
td <%=name%>
td <%=item[name]%>
| <%})%>


所有涉及underscore模板的地方,比如`<%`,`%>`包裹的内容(js代码),都需要作为字符串直接输出
而其他的内容,如果是标签,还是可以利用jade来编译的,主要注意缩进级别。

这样的混合,最开始很难理解。

这其是一个关于字符串拼接的事。

通常写nodejs做web服务器时,会选择一种模板语言,而前端在需要动态生成内容时,也会选择一种模板。

这时如何让后端模板与前端模板同时存在,输出时,如何只编译后端模板就是个问题了。

如果后端模板与前端模板相同,这种事情更难处理。因为后端在渲染时,需要知道哪些是需要后端处理哪些是前端处理是很难分清的。

用过Php smarty模板的同学都遇到过`{}`大括号的问题,可以通过转义,或者设置另一种不常用的开始结束标记来解决。这需要模板支持设置标记才可以。

你可能感兴趣的:(在jade中包含 其他前端模板(underscore))