mle*_*les 15 node.js express handlebars.js
我正在使用带有nodejs和express的把手.这是我的main.handlebars文件:
<!doctype html>
<html>
<head>
...
</head>
<body>
<div class ="container">
...
<footer>
© {{copyrightYear}} Meadowlark Travel
</footer>
</div>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
到目前为止,我将版权年份传递给每条路线:
var date = new Date();
var copyrightYear = date.getFullYear();
app.get(
'/',
function( req, res) {
res.render(
'home',
{
copyrightYear: copyrightYear
}
);
}
);
Run Code Online (Sandbox Code Playgroud)
是否可以copyrightYear全局设置变量,因此我不必将其传递给每个路径/视图?
sta*_*aar 16
ExpressJS提供了某种"全局变量".它们在文档中提到:app.locals.要在每个响应中包含它,您可以执行以下操作:
app.locals.copyright = '2014';
Run Code Online (Sandbox Code Playgroud)
小智 7
对于这种情况,您也可以创建Handlebars帮助程序.像这样:
var Handlebars = require('handlebars');
Handlebars.registerHelper('copyrightYear', function() {
var year = new Date().getFullYear();
return new Handlebars.SafeString(year);
});
Run Code Online (Sandbox Code Playgroud)
在模板中,只需像以前一样使用它:
© {{copyrightYear}} Meadowlark Travel
Run Code Online (Sandbox Code Playgroud)
小智 5
使用express-handlebars只是有点不同:
var handlebars = require('express-handlebars').create({
defaultLayout:'main',
helpers: {
copyrightYear: function() {
return new Date().getFullYear();
},
}
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8575 次 |
| 最近记录: |