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]