Фильтрация (без отображения) слоев в GeoExt.LegendPanel с использованием оператора LIKE
Это помогает избежать появления слоев базовой карты, таких как Карты Google, и наложений, таких как WMS, на панели легенды GeoExt:
var legendPanel = new GeoExt.LegendPanel({
border: false,
filter: function(record){
if(!(record.getLayer().isBaseLayer) && (record.getLayer() instanceof OpenLayers.Layer.WMS)){
return true;
}
} });
Проблема в том, что мне нужно отфильтровать (т.е. не отображать) слои с именами, имеющими "луч" в своих именах, я безуспешно пытался это:
return record.getLayer().displayInLayerSwitcher == false && record.getLayer().name == '%beam%';
return record.getLayer().displayInLayerSwitcher == false &&
record.get("layer").name.indexOf("%beam%") == -1;
return record.get("layer").name.indexOf("%beam%") == -1;
Любые намеки приветствуются,
1 ответ
Решение
Просто удалите "%". использование
return record.getLayer().name.indexOf("beam") == -1;
вместо
return record.getLayer().name.indexOf("%beam%") == -1;