为什么 Mapbox eachLayer 函数不会在每次加载页面时触发?

Why Mapbox eachLayer function doesn't fire every time page is loaded?

这段代码让我有些头疼:

regions = L.mapbox.featureLayer().loadURL('somefile.geojson');
layer.on('ready', function(e) {
     var regionBounds;
     console.log(regions);
     regions.eachLayer(function(lr) { //This function fires about one of two site loads.
         if(lr.feature.properties.title == '{{ $region->name }}') {
             regionBounds = lr.getBounds();
         }
     });

     layer.eachLayer(function(lr) {
         if(lr.feature.geometry.type == 'Point') {
              lr.setIcon(L.divIcon(icon));
         }
     });

     map.fitBounds(regionBounds);
}

eachLayer() 失败时,regions _request 属性 设置为XMLHttpRequest,当正确加载地图时设置为null,但我不确定这是什么意思。如果有人能帮我解决这个问题,并使这个功能在每个站点负载上都能正常工作,我将不胜感激。

您的 on.('ready', ...) 函数未连接到 regions,它连接到 layer(我猜它是在别处定义的)。如果将其更改为 regions.on('ready', ...),该函数将在加载 somefile.geojson 之前执行,并且应该在每次加载页面时执行。