【问题标题】:Can't call AppComponent function inside ngOnInit : "Object doesn't support property or method"无法在 ngOnInit 中调用 AppComponent 函数:“对象不支持属性或方法”
【发布时间】:2019-06-03 21:33:56
【问题描述】:

我是 Angular 的新手,我正在尝试从同一类的 ngOnInit 函数中的 AppComponent 类调用我的函数 setCenter2(),这可能吗?当我点击我的地图时,基本上当它试图调用我的函数时,(我使用 OpenStreetMap)我得到这个错误:错误类型错误:对象不支持属性或方法'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}`);
  }); 
}

【问题讨论】:

    标签: node.js angular typescript


    【解决方案1】:

    使用粗箭头函数,因为你失去了this 的值:

    this.map.on('click', args => {
    

    【讨论】:

      猜你喜欢
      • 2019-07-05
      • 1970-01-01
      • 2014-09-19
      • 2022-01-13
      • 2013-01-15
      • 2015-04-14
      • 2020-09-03
      • 2015-04-09
      • 2014-01-12
      相关资源
      最近更新 更多