///
import Handlebars = require('handlebars');
var context = {
author: { firstName: 'Alan', lastName: 'Johnson' },
body: 'I Love Handlebars',
comments: [{
author: { firstName: 'Yehuda', lastName: 'Katz' },
body: 'Me too!'
}]
};
Handlebars.registerHelper('fullName', (person: typeof context.author) => {
return person.firstName + ' ' + person.lastName;
});
Handlebars.registerHelper('agree_button', function() {
return new Handlebars.SafeString(
''
);
});
var source = '
Hello, my name is {{name}}. I am from {{hometown}}. I have ' +
'{{kids.length}} kids:
' +
'{{#kids}}- {{name}} is {{age}}
{{/kids}}
';
var template = Handlebars.compile(source);
var data = { 'name': 'Alan', 'hometown': 'Somewhere, TX',
'kids': [{'name': 'Jimmy', 'age': '12'}, {'name': 'Sally', 'age': '4'}]};
var result = template(data);
Handlebars.registerHelper('link_to', (context: typeof post) => {
return '' + context.body + '';
});
var post = { url: '/hello-world', body: 'Hello World!' };
var context2 = { posts: [post] };
var source2 = '{{#posts}}- {{{link_to this}}}
{{/posts}}
';
var template2 = Handlebars.compile(source2);
template2(context2);
Handlebars.registerHelper('link_to', (title: string, context: typeof post) => {
return '' + title + '!';
});
var context3 = { posts: [{url: '/hello-world', body: 'Hello World!'}] };
var source3 = '{{#posts}}- {{{link_to "Post" this}}}
{{/posts}}
';
var template3 = Handlebars.compile(source3);
template3(context3);
var source4 = '{{#people}}- {{#link}}{{name}}{{/link}}
{{/people}}
';
Handlebars.registerHelper('link', function(context: any) {
return '' + context.fn(this) + '';
});
var template4 = Handlebars.compile(source4);
var data2 = { 'people': [
{ 'name': 'Alan', 'id': 1 },
{ 'name': 'Yehuda', 'id': 2 }
]};
template4(data2);
var source5 = '{{#people}}- {{> link}}
{{/people}}
';
Handlebars.registerPartial('link', '{{name}}');
var template5 = Handlebars.compile(source5);
var data3 = { 'people': [
{ 'name': 'Alan', 'id': 1 },
{ 'name': 'Yehuda', 'id': 2 }
]};
template5(data3);
Handlebars.registerHelper('list', (items: any, fn: (item: any) => string) => {
var out = '';
for(var i=0, l=items.length; i' + fn(items[i]) + '';
}
return out + '
';
});
Handlebars.registerHelper('fullName', (person: typeof context.author) => {
return person.firstName + ' ' + person.lastName;
});
var escapedExpression = Handlebars.Utils.escapeExpression('');
Handlebars.helpers !== undefined;