[英]Node.js: use underscore along with ejs to render html
我目前正在使用EJS模板引擎來渲染我的HTML頁面,但我想添加下划線以簡化預處理。 現在我這樣做,它的工作原理:
var _ = require("underscore");
app.get('/', function(req, res){
var data = {};
data.people = [{ name: "john" }, { name: "marry" }];
data._ = _; // inject underscore.js
res.render('index', data);
});
現在要呈現HTML,我可以訪問下划線:
<% _.each(people, function(person){ %>
<div><%= person.name %></div>
<% }); %>
但是,我必須為每條路線注入下划線,有沒有辦法總是注入下划線? (也許在app.engine設置的某個地方?)
您可以將_
綁定到app.locals
。
設置后, app.locals屬性的值在應用程序的整個生命周期中都會持續存在,而res.locals屬性僅在請求的生命周期內有效。
app.locals._ = _;
app.get('/', function(req, res){
var data = {};
data.people = [{ name: 'john' }, { name: 'marry' }];
res.render('index', data);
});
在你看來:
<% _.each(people, function(person){ %>
<div><%= person.name %></div>
<% }); %>
另一個SO用戶有一個很好的答案: 在app.locals中訪問req和res
請參閱有關app.locals
與req.locals
的文檔
我只是在名字'john'和'marry'周圍加上引號
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.