Solved! Go to Solution.
dojo.forEach(map.layerIds, function(layerId) {
var legendRequest = esri.request({
url: map.getLayer(layerId).url + "/legend?f=json",
handleAs: "json"
});
legendRequest.then(
// if the legend REST service succeeds, create the placeholder for each layer legend
function(data) {
if (data && data.layers && data.layers.length > 0) {
// create the placeholder for each layer legend
loadLegend(data.layers, layerId);
}
}, function(error) {
console.log(error);
});
});
// legendNode is the container node for the legend
loadLegend: function(layers, svcLayerId) {
dojo.forEach(layers, function(layer) {
var legends = layer.legend;
if (legends.length > 0) {
var newLegendContainer = dojo.create("div", {className: "clsLegendNodeContainer"}, legendNode);
var newLegendLayerName = dojo.create("div", {className: "clsLegendLayerName", innerHTML: layer.displayName || layer.layerName}, newLegendContainer);
var newLegend, newLabel, imageSrc;
dojo.forEach(legends, function(aLegend) {
newLegend = dojo.create("div", {className: "clsLayerLegend"}, newLegendContainer);
imageSrc = "data:" + aLegend.contentType + ";base64," + aLegend.imageData;
dojo.create("img", {src: imageSrc}, newLegend);
dojo.create("label", {className: "clsLegendLabel", innerHTML: aLegend.label}, newLegend);
});
}
});
}