使用 LIKE 运算符过滤(不显示)GeoExt.LegendPanel 中的图层

Filter (no display) layers in GeoExt.LegendPanel using LIKE operator

这可以避免底图图层(例如 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;
        }
    } });

问题是我需要过滤(即不显示)名称中包含 "beam" 的图层,我试过没有成功:

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;

欢迎任何提示,

只需删除“%”。使用

return record.getLayer().name.indexOf("beam") == -1;

而不是

return record.getLayer().name.indexOf("%beam%") == -1;