gpt4 book ai didi

javascript - 从 Angular2/IONIC2 中的构造函数调用方法

转载 作者:搜寻专家 更新时间:2023-10-30 21:30:13 24 4
gpt4 key购买 nike

我是 Angular 2 的新手,我想知道是否可以从当前构造函数调用子方法。

例如,我想从构造函数中调用getPosition 方法,但抛出一个异常“getPosition 不是一个函数”。

import { Component } from '@angular/core';
import { NavController, AlertController } from 'ionic-angular';
import { Platform } from 'ionic-angular';
import { Q } from 'q';

@Component({
selector: 'page-home',
templateUrl: 'home.html'
})

export class HomePage {

private map;

constructor(public navCtrl: NavController, platform: Platform, public alertCtrl: AlertController) {
platform.ready().then(() => {
try {
let div = document.getElementById("map_canvas");
// Initialize the map view
this.map = (<any>window).plugin.google.maps.Map.getMap(div);

// Wait until the map is ready status.
this.map.addEventListener((<any>window).plugin.google.maps.event.MAP_READY, function() {
this.getPosition().then(data => {
let GOOGLE = new (<any>window).plugin.google.maps.LatLng(data.latitude, data.longitude);
this.map.setCenter(GOOGLE);
}).catch(err => {
alert(err);
});
});
} catch(err) {
alert(err);
}
}).catch(err => {
alert(err);
});
}


getPosition() {
let deferred = Q.defer();
try {
this.map.getMyLocation(location => {
deferred.resolve( {
latitude: location.latLng.lat,
longitude: location.latLng.lng
});
}, err => {
deferred.reject(err);
});

} catch(err) {
deferred.rejec(err);
}
return deferred.promise;
}

}

最佳答案

改变,

// Wait until the map is ready status.
this.map.addEventListener((<any>window).plugin.google.maps.event.MAP_READY, function() {
this.getPosition().then(data => {
let GOOGLE = new (<any>window).plugin.google.maps.LatLng(data.latitude, data.longitude);
this.map.setCenter(GOOGLE);
}).catch(err => {
alert(err);
});
});

// Wait until the map is ready status.
this.map.addEventListener((<any>window).plugin.google.maps.event.MAP_READY, ()=> {
this.getPosition().then(data => {
let GOOGLE = new (<any>window).plugin.google.maps.LatLng(data.latitude, data.longitude);
this.map.setCenter(GOOGLE);
}).catch(err => {
alert(err);
});
});

由于您使用的是 function 而不是 ()=>(粗箭头语法),因此您的 this 是指您在.addEventListener部分

关于javascript - 从 Angular2/IONIC2 中的构造函数调用方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41069084/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com