[LayerGroup] Use eachLayer
for iterations over layers (#5809)
* [LayerGroup] use eachLayer method instead of for...in * [LayerGroup] use eachLayer method in getLayers method * [LayerGroup] use eachLayer method in onAdd & onRemove methods * [LayerGroup] invoke method fix - use `eachLayer` method instead of for...in - add unit test for `invoke` method * revert invoke method change
This commit is contained in:
parent
7e49242aa2
commit
3e3f9e89c4
@ -92,4 +92,20 @@
|
||||
L.geoJson(layerGroup.toGeoJSON());
|
||||
});
|
||||
});
|
||||
|
||||
describe("#invoke", function () {
|
||||
it('should invoke `setOpacity` method on every layer', function () {
|
||||
var layers = [
|
||||
L.marker([0, 0]),
|
||||
L.marker([1, 1])
|
||||
];
|
||||
var lg = L.layerGroup(layers);
|
||||
var opacity = 0.5;
|
||||
|
||||
expect(layers[0].options.opacity).to.not.eql(opacity);
|
||||
lg.invoke('setOpacity', opacity);
|
||||
expect(layers[0].options.opacity).to.eql(opacity);
|
||||
expect(layers[1].options.opacity).to.eql(opacity);
|
||||
});
|
||||
});
|
||||
});
|
||||
|
@ -77,10 +77,7 @@ export var LayerGroup = Layer.extend({
|
||||
// @method clearLayers(): this
|
||||
// Removes all the layers from the group.
|
||||
clearLayers: function () {
|
||||
for (var i in this._layers) {
|
||||
this.removeLayer(this._layers[i]);
|
||||
}
|
||||
return this;
|
||||
return this.eachLayer(this.removeLayer, this);
|
||||
},
|
||||
|
||||
// @method invoke(methodName: String, …): this
|
||||
@ -103,15 +100,11 @@ export var LayerGroup = Layer.extend({
|
||||
},
|
||||
|
||||
onAdd: function (map) {
|
||||
for (var i in this._layers) {
|
||||
map.addLayer(this._layers[i]);
|
||||
}
|
||||
this.eachLayer(map.addLayer, map);
|
||||
},
|
||||
|
||||
onRemove: function (map) {
|
||||
for (var i in this._layers) {
|
||||
map.removeLayer(this._layers[i]);
|
||||
}
|
||||
this.eachLayer(map.removeLayer, map);
|
||||
},
|
||||
|
||||
// @method eachLayer(fn: Function, context?: Object): this
|
||||
@ -138,10 +131,7 @@ export var LayerGroup = Layer.extend({
|
||||
// Returns an array of all the layers added to the group.
|
||||
getLayers: function () {
|
||||
var layers = [];
|
||||
|
||||
for (var i in this._layers) {
|
||||
layers.push(this._layers[i]);
|
||||
}
|
||||
this.eachLayer(layers.push, layers);
|
||||
return layers;
|
||||
},
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user