我在 Node.js 中有一个应用程序,使用 Expressjs 和 Handlebars 作为模板引擎。
Expressjs 使用布局,然后渲染视图。布局(layout.hbs)如下所示:
<!doctype html>
<html lang="en">
<head>
</head>
<body>
{{{body}}}
</body>
</html>
The {{{body}}}
当您访问路由时,在 Node.js 中的服务器端被替换。例如:
app.get('/', function(req, res){
res.render('index'})
})
将取代{{{body}}}
带有index.hbs内容的标签。
现在,在客户端,我正在使用 Backbone.js,并希望将 Handlebars 用于通过 Backbone 控制的视图。问题是,因为这些页面已经通过 Handlebars 渲染,所以当我尝试在其中使用 Handlebars(或 Handlebars 中的 Handlebars)时,它不起作用。没有错误,它只是没有用数据替换标签。
有人以前遇到过这个问题或者有解决办法吗?
谢谢你!
您应该使用预编译的客户端模板。它们执行速度更快,并允许您在服务器和客户端上使用相同的模板语言。
- 全局安装车把
npm install handlebars -g
- 预编译您的模板
handlebars client-template1.handlebars -f templates.js
- 包含模板.js
<script src="templates.js"></script>
- 执行模板
var html = Handlebars.templates["client-template1"](context);
https://stackoverflow.com/a/13884587/8360 https://stackoverflow.com/a/13884587/8360
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)