2 Handlebars.registerHelper('json', function(obj) {
7 Handlebars.registerHelper('translate', function(s) {
12 // We need {{attr '@name'}} because Handlebars can't parse {{@name}}
13 Handlebars.registerHelper('attr', function(attrName) {
14 return this[attrName];
19 * Use as follows: {{#if-any NAME1 having="NAME2"}}
20 * Applicable when NAME1 is the name of an array
21 * The guarded code runs only if at least one element of the NAME1
22 * array has a subelement called NAME2.
24 Handlebars.registerHelper('if-any', function(items, options) {
25 var having = options.hash.having;
26 for (var i in items) {
28 if (!having || item[having]) {
29 return options.fn(this);
36 Handlebars.registerHelper('first', function(items, options) {
37 var having = options.hash.having;
38 for (var i in items) {
40 if (!having || item[having]) {
41 return options.fn(item);
48 Handlebars.registerHelper('commaList', function(items, options) {
51 for (var i in items) {
52 if (i > 0) out += ", ";
53 out += options.fn(items[i])
60 Handlebars.registerHelper('index1', function(obj) {
61 return obj.data.index + 1;