Mar*_*ria 6 javascript ejs node.js express underscore.js
我目前正在使用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);
});
Run Code Online (Sandbox Code Playgroud)
现在要呈现HTML,我可以访问下划线:
<% _.each(people, function(person){ %>
<div><%= person.name %></div>
<% }); %>
Run Code Online (Sandbox Code Playgroud)
但是,我必须为每条路线注入下划线,有没有办法总是注入下划线?(也许在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);
});
Run Code Online (Sandbox Code Playgroud)
在你看来:
<% _.each(people, function(person){ %>
<div><%= person.name %></div>
<% }); %>
Run Code Online (Sandbox Code Playgroud)
另一个SO用户有一个很好的答案:在app.locals中访问req和res
请参阅有关vs. 的文档app.localsreq.locals
我只是在名字'john'和'marry'周围加上引号
| 归档时间: |
|
| 查看次数: |
2067 次 |
| 最近记录: |