我试图编写一个把手助手,我可以传递一个需要解析的JSON字符串,然后抓住任何特定的属性,不知道有多少级别的嵌套,例如:
Handlebars.registerHelper 'parseJSON', (string, properties) ->
json = JSON.parse string
# how can I do: return json[oneProperty][andANestedProperty]
然后使用' responseBody'作为我的JSON字符串,不知道如何传递它,但想法是我有类似的东西:
{{parseJSON responseBody [oneProperty][andANestedProperty] }}
答案 0 :(得分:0)
如果您希望能够说出以下内容:
{{parseJSON json 'p1' 'p2'}}
{{parseJSON json 'p1' 'p2' 'p3'}}
在你的模板中,你只需要让你的助手接受任意数量的参数。唯一棘手的问题是Handlebars properties
参数始终是最后一个。使用CoffeeScript splat:
Handlebars.registerHelper 'parseJSON', (json, path..., properties) ->
# path will be an array in here
这会在帮助器内的['p1', 'p2']
数组中为您提供['p1', 'p2', 'p3']
和path
等内容。