This question is specifically for using map services containing one layer in NLiu's TOC. In the following code (from the widget), I am understanding that there is the possibility of eliminating the first row corresponding to the layer entry's title :
_createRootLayerNode: function(rootLayer){ domClass.add(this.rowNode, 'agsjsTOCRootLayer'); domClass.add(this.labelNode, 'agsjsTOCRootLayerLabel'); var title = this.rootLayerTOC.config.title; // if it is '' then it means we do not title to be shown, i.e. not indent. if (title === '') { // we do not want to show the first level, typically in the case of a single map service esri.hide(this.rowNode); rootLayer.show(); this.rootLayerTOC._currentIndent--; } else if (title === undefined){ // no title is set, try to find default if (rootLayer.name){ // this is a featureLayer title = rootLayer.name; } else { var start = rootLayer.url.toLowerCase().indexOf('/rest/services/'); var end = rootLayer.url.toLowerCase().indexOf('/mapserver', start); title = rootLayer.url.substring(start + 15, end); } } ... }
However, when setting the title: as '', the service just doesn't appear in the TOC. Anyone gotten this work? Am I misunderstanding what this part of the code is supposed to do?
function initLegend () { toc = new TOC({ map: window.myMap, layerInfos: [ { layer: OneLayerService, title: '', collapsed: true //layerList: layerInfo } ] }, 'legendDiv');