我正在尝试在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'});
}
答案 0 :(得分:2)
reply.view()
的第二个参数是context
对象。因此,您在示例中所做的是提供具有layout
属性的上下文,这就是为什么它不起作用。 options
应该是第三个参数:
reply.view(template, [context, [options]])
如果您没有context
,则可以提供空对象。这应该有效:
module.exports.index = function (request, reply) {
reply.view('home/index', {}, { layout: 'account' });
};