Hapijs – views

There are two ways for rendering a view by using reply.view()interface, or by using view handler.

– reply.view()

[cc lang=”javascript”]server.route({
method: ‘GET’,
path: ‘/’,
handler: function (request, reply) {
reply.view(‘index’);
}
});[/cc]

 

if you want to pass context to reply.view(), pass an object as the second parameter, for example:

[cc lang=”javascript”]server.route({
method: ‘GET’,
path: ‘/’,
handler: function (request, reply) {
reply.view(‘index’, { title: ‘My home page’ });
}
});
[/cc]

-View handler

[cc lang=”javascript”]

server.route({
method: ‘GET’,
path: ‘/’,
handler: {
view: ‘index’
}
});
[/cc]

here, context is passed in the key context:

[cc lang=”javascript”]
handler: {
view: {
template: ‘index’,
context: {
title: ‘home page’
}
}
}
[/cc]

Global context

if you want to add some default context that should always be available on all templates?

you have to pass context option when calling server.views():

[cc lang=”javascript”]

var yourContext = {
title: ‘siteTittle’
};
server.views({
engines: {
‘html’: {
module: require(‘handlebars’),
compileMode: ‘sync’
}
},
context: yourContext
});
[/cc]


Posted

in

, ,

by

Tags:

Comments

Leave a Reply

Your email address will not be published. Required fields are marked *