Фильтрация (без отображения) слоев в 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;
Другие вопросы по тегам