在hapijs中的多个布局

时间:2015-06-26 01:53:46

标签: node.js model-view-controller hapijs

我正在尝试在hapi应用程序中使用多个布局。我有2个布局文件:accountdefault

这是我的视图引擎注册:

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'});
}

1 个答案:

答案 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' });
};