【发布时间】:2012-02-24 12:02:35
【问题描述】:
我正在尝试使用 Handlebars 注册帮助程序以允许迭代 JSON 对象。 This gist 看起来是一个合适的解决方案。我将其转换为以下 CoffeeScript。当我使用任何一个助手时,似乎什么都没有发生(对于 vanilla JavaScript 和 CoffeeScript 版本都是如此)。有什么想法吗?
$ ->
Handlebars.registerHelper "key_value", (obj, fn)->
buffer = ""
key
for key in obj
if obj.hasOwnProperty(key)
buffer += fn({key: key, value: obj[key]})
buffer
Handlebars.registerHelper "each_with_key", (obj, fn)->
context
buffer = ""
key
keyName = fn.hash.key
for key in obj
if obj.hasOwnProperty(key)
context = obj[key]
if keyName
context[keyName] = key
buffer += fn(context)
buffer
在模板中:
{{#key_value categories}}
I'M ALIVE!!
{{/key_value}}
{{#each_with_key categories key="category_id"}}
I'M ALIVE!!
{{/each_with_key}}
我目前在 Gemfile 中使用 gem 'handlebars-assets' 将把手添加到 rails 应用程序。
【问题讨论】:
标签: javascript ruby-on-rails coffeescript handlebars.js