hapijs 中的多种布局
Multiple layouts in hapijs
我正在尝试在 hapi
应用程序中使用多个布局。我有 2 个布局文件:account
、default
这是我的视图引擎注册:
server.views({
engines: { html: require('handlebars') },
relativeTo: __dirname,
path: './views',
layoutPath: './views/layout',
layout: 'default'
//helpersPath: 'views/helpers',
//partialsPath: 'views/partials'
});
默认情况下它抓取 default
,我如何强制它为特定文件显示另一个布局?
我也试过将它添加到视图调用中,但没有成功:
module.exports.index = function (request, reply) {
reply.view("home/index", {layout: 'account'});
}
reply.view()
的第二个参数是 context
对象。因此,您在示例中所做的是提供带有 layout
属性 的上下文,这就是它不起作用的原因。 options
应该是第三个参数:
reply.view(template, [context, [options]])
如果您没有context
,您可以提供一个空对象。这应该有效:
module.exports.index = function (request, reply) {
reply.view('home/index', {}, { layout: 'account' });
};
我正在尝试在 hapi
应用程序中使用多个布局。我有 2 个布局文件:account
、default
这是我的视图引擎注册:
server.views({
engines: { html: require('handlebars') },
relativeTo: __dirname,
path: './views',
layoutPath: './views/layout',
layout: 'default'
//helpersPath: 'views/helpers',
//partialsPath: 'views/partials'
});
默认情况下它抓取 default
,我如何强制它为特定文件显示另一个布局?
我也试过将它添加到视图调用中,但没有成功:
module.exports.index = function (request, reply) {
reply.view("home/index", {layout: 'account'});
}
reply.view()
的第二个参数是 context
对象。因此,您在示例中所做的是提供带有 layout
属性 的上下文,这就是它不起作用的原因。 options
应该是第三个参数:
reply.view(template, [context, [options]])
如果您没有context
,您可以提供一个空对象。这应该有效:
module.exports.index = function (request, reply) {
reply.view('home/index', {}, { layout: 'account' });
};