I am trying to render my nested(can be multiple level) JSON using Mustache partials. It renders only till second level it does not third & greater. As per definition partials can be used to render recursively. Am I doing it wrong ? or is there any other way to achieve the same using mustache ?
Template:
<script id="product-list" type="x-tmpl-mustache">
<ul class='products'>
{{#product}}
<li class='product'> {{ productName }} </li>
{{> recurse }}
{{/product}}
{{^product}}
<li class='empty'> No products Available </li>
{{/product}}
</ul>
</script>
<script id="recursive-list" type="x-tmpl-mustache">
<ul class='products'>
{{#product}}
<li class='product'> {{ productName }} </li>
{{/product}}
</ul>
</script>
Data:
var data = {
product: [{
productName: "Category1",
product: [{
productName: "Windows"
}, {
productName: "Windows Mobile"
}]
}, {
productName: "Category2",
product: [{
productName: "SubCategory 1",
product: [{
productName: "Nexus 4"
}, {
productName: "Nexus 6"
}]
}, {
productName: "SubCategory 2",
product: [{
productName: "ipod"
}, {
productName: "iphone"
}]
}]
}]
};
Rendering:
$('body').html( Mustache.render( productList.html(), data, {recurse :recursiveList.html()}) );
Output (missing products: Nexus 4, Nexus 5, ipod, iphone)
Category1
- Windows
- Windows Mobile
Category2
- SubCategory 1
- SubCategory 2