我是Angular的新手,正在尝试从同一类的ngOnInit函数中的AppComponent类调用函数setCenter2(),这可能吗?当我单击地图时,基本上是当它尝试调用我的函数时(我使用OpenStreetMap),我收到此错误:ERROR TypeError:对象不支持属性或方法“ setCenter2”。告诉我是否需要更多我的代码,谢谢。执行此操作时是否需要特别注意某些事项?
我已经了解了Internet Explorer的错误,但事实并非如此,我使用Edge并使用了最新版本的Angular。
export class AppComponent {
[…]
setCenter2() {
var view = this.map.getView();
view.setCenter(ol.proj.fromLonLat([this.longi1, this.lati1]));
view.setZoom(this.zoom);
}
[…]
ngOnInit() {
[…]
this.map.on('click', function (args) {
console.log(args.coordinate);
var lonlat = ol.proj.transform(args.coordinate, 'EPSG:3857', 'EPSG:4326');
console.log(lonlat);
// var lon = lonlat[0];
// var lat = lonlat[1];
//alert(`lat: ${lonlat[1]} et long: ${lonlat[0]}`);
eval("this.longi1 = lonlat[0];");
eval("this.lati1 = lonlat[1];");
this.setCenter2();
alert(`lati: ${this.lati1} et longi: ${this.longi1}`);
});
}
答案 0 :(得分:1)
使用粗箭头功能,因为您失去了this
的值:
this.map.on('click', args => {