I want to create a list of layers and nested list of sublayers for each layer by iterating this object with ng-repeat.
var lyrslist = [
{ layername: "Base Maps", layertype: "layer" },
{ layername: "Open Street Map", layertype: "sublayer" },
{ layername: "Designated Sites", layertype: "layer" },
{ layername: "Ancient Woodlands", layertype: "sublayer" },
{ layername: "Conservation Areas", layertype: "sublayer" },
{ layername: "Listed Buildings", layertype: "sublayer" }
];
HTML
<h5>Layers</h5>
<ul ng-repeat="lyr in lyrslist">
<li ng-if="lyr.layertype === 'layer'" >
Layer {{lyr.layername}}
<ul>
<li ng-if="lyr.layertype === 'sublayer'">
Sub Layer {{lyr.layername}}
</li>
</ul>
</li>
</ul>
The result is that only the Layers are being listed. It seems that ng-repeat doesn't cascade down to the next <ul>. I tried putting ng-repeat inside the <ul> tag but that just the whole list instead of the just the required sub-layers.
This is the result I'm trying to get:
Layers
- Layer Base Maps
- Sub Layer Open Street Map
- Layer Designated Sites
- Sub Layer Ancient Woodlands
- Sub Layer Conservation Areas
- Sub Layer Listed Buildings
[{ layername:"Base Maps", layertype:"layer", sublayer: [layername:"Open Street Map", layertype:"sublayer"]}]. Then you can easily generate view easily. Check my answer below. Thanks.