我正在尝试为Leaflet地图查看器开发插件。我有一个带有选项属性列表的类,但当我尝试使用此onAdd
方法访问它们时,使用此键工作无效。
L.btsControl = L.Control.extend({
options: {
position: 'topright',
//control position - allowed: 'topleft', 'topright',
//'bottomleft', 'bottomright'
minValue: 'isss',
min: 0,
max: 1,
maxValue: '',
},
initialize: function (options) {
L.Util.setOptions(this, options);
},
onAdd: function (map) {
this._map = map;
this._map.eachLayer(function (layer){
if (layer.options.time_i > this.options.max) {
this.options.maxValue = layer.options.time;
}
if (layer.options.time_i < this.options.min) {
this.options.minValue = layer.options.time;
}
});
//SKIPED CODE
return container;
},
那么,如何从onAdd
方法访问min和max属性?现在我正在
&#34; TypeError:this.options未定义&#34;
调用函数是:var mycontrol = new L.btsControl().addTo(map);
答案 0 :(得分:1)
您提供给.eachLayer()
的回调函数没有您想要的上下文。您可以通过将该功能绑定到this
:
this._map.eachLayer(function (layer){
if (layer.options.time_i > this.options.max) {
this.options.maxValue = layer.options.time;
}
if (layer.options.time_i < this.options.min) {
this.options.minValue = layer.options.time;
}
}.bind(this));