默认或继承的 {{sections}} 在 node.js 中使用 Hogan
Default or inherited {{sections}} Using Hogan in node.js
当我调用 res.render 时,有没有办法始终对部分使用相同的变量?例如:
res.render('index', {
layout: 'layouts/dashboard/slim',
partials:{
partial_one: "path/to/partial_one.hjs",
partial_two: "path/to/partial_two.hjs"
},
title: 'Dashboard',
section_one: foo,
section_two: bar
});
我希望 res.render 始终将这两个部分与 foo 和 bar 相关联,而不必每次都将它们包含在调用中。这可能吗?
提前致谢。
创建自定义渲染器:
renderCustom('index', {
layout: 'layouts/dashboard/slim',
title: 'Dashboard',
section_one: foo,
section_two: bar
});
function renderCustom(name, object) {
object.partials = {};
object.partials.partial_one = "path/to/partial_one.hjs";
object.partials.partial_two = "path/to/partial_two.hjs";
res.render(name, object);
}
或者,您可以热修补渲染函数。
app.use(function (req, res, next) {
var render = res.render;
res.render = function (view, locals, cb) {
if (typeof locals == 'object') {
locals.partials = {};
locals.partials.partial_one = "path/to/partial_one.hjs";
locals.partials.partial_two = "path/to/partial_two.hjs";
}
render.call(res, view, locals, cb);
};
next();
});
当我调用 res.render 时,有没有办法始终对部分使用相同的变量?例如:
res.render('index', {
layout: 'layouts/dashboard/slim',
partials:{
partial_one: "path/to/partial_one.hjs",
partial_two: "path/to/partial_two.hjs"
},
title: 'Dashboard',
section_one: foo,
section_two: bar
});
我希望 res.render 始终将这两个部分与 foo 和 bar 相关联,而不必每次都将它们包含在调用中。这可能吗? 提前致谢。
创建自定义渲染器:
renderCustom('index', {
layout: 'layouts/dashboard/slim',
title: 'Dashboard',
section_one: foo,
section_two: bar
});
function renderCustom(name, object) {
object.partials = {};
object.partials.partial_one = "path/to/partial_one.hjs";
object.partials.partial_two = "path/to/partial_two.hjs";
res.render(name, object);
}
或者,您可以热修补渲染函数。
app.use(function (req, res, next) {
var render = res.render;
res.render = function (view, locals, cb) {
if (typeof locals == 'object') {
locals.partials = {};
locals.partials.partial_one = "path/to/partial_one.hjs";
locals.partials.partial_two = "path/to/partial_two.hjs";
}
render.call(res, view, locals, cb);
};
next();
});