-
Notifications
You must be signed in to change notification settings - Fork 136
Renderer::Json
The json renderer outputs a json string representing the full menu. This renderer can be useful when implementing a custom javascript menu.
The top level object is an array containing the top level menu items, every menu item has the name, url, selected and items keys. The items properties contains either the array of the sub menu items or null where it is a leaf node.
Example render:
[
{
"name": "Books",
"url": null,
"selected": false,
"items": [
{
"name": "Sci-Fi",
"url" : "/sci-fi",
"selected": true,
"items": null
}
]
},
{
"name": "Movies",
"url": "/movies",
"selected": false,
"items": null
}
]
You can invoke the renderer on the following way:
render_navigation(:renderer => :json)
Most of the time you'll want the menu to be assigned directly on javascript, on those cases you'll problably would want to avoid the output to be escaped:
<%= raw render_navigation(:renderer => :json) %>
You can also use this renderer to get the menu as a ruby Hash, to do so you need to set the option :as_hash => true
:
render_navigation(:renderer => :json, :as_hash => true)
Please be aware that even when requesting the output as a hash the results is actually an array where every item is a hash object.