Advertisement
Guest User

Untitled

a guest
Oct 20th, 2011
1,290
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.30 KB | None | 0 0
  1. // original each helper
  2. Handlebars.registerHelper('each', function(context, options) {
  3. var fn = options.fn, inverse = options.inverse;
  4. var ret = "";
  5.  
  6. if(context && context.length > 0) {
  7. for(var i=0, j=context.length; i<j; i++) {
  8. ret = ret + fn(context[i]);
  9. }
  10. } else {
  11. ret = inverse(this);
  12. }
  13. return ret;
  14. });
  15.  
  16.  
  17. // each with index... relies on Object.create or polyfill
  18. Handlebars.registerHelper('each', function(context, options) {
  19. var fn = options.fn, inverse = options.inverse, ctx;
  20. var ret = "";
  21.  
  22. if(context && context.length > 0) {
  23. for(var i=0, j=context.length; i<j; i++) {
  24. ctx = Object.create(context[i]);
  25. ctx.index = i;
  26. ret = ret + fn(ctx);
  27. }
  28. } else {
  29. ret = inverse(this);
  30. }
  31. return ret;
  32. });
  33.  
  34. // each with named index
  35. //
  36. // used as:
  37. // {{#each people index="id"}}{{name}} #{{id}}{{/each}}
  38. Handlebars.registerHelper('each', function(context, options) {
  39. var fn = options.fn, inverse = options.inverse, ctx;
  40. var ret = "", indexName = options.hash.index;
  41.  
  42. if(context && context.length > 0) {
  43. for(var i=0, j=context.length; i<j; i++) {
  44. ctx = context[i];
  45. if (indexName) {
  46. ctx = Object.create(ctx);
  47. ctx[indexName] = i;
  48. }
  49. ret = ret + fn(ctx);
  50. }
  51. } else {
  52. ret = inverse(this);
  53. }
  54. return ret;
  55. });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement