Javascript 为什么typescript看不到我的函数?

Javascript 为什么typescript看不到我的函数?,javascript,google-maps,angular,typescript,Javascript,Google Maps,Angular,Typescript,我有以下位于onInit方法中的侦听器: google.maps.event.addListener(this.map, 'click', function(event) { console.log(event.latLng); var lt = event.latLng.lat; var ln = event.latLng.lng; console.log(lt()); console.log(ln());

我有以下位于onInit方法中的侦听器:

 google.maps.event.addListener(this.map, 'click', function(event) {
        console.log(event.latLng);
        var lt = event.latLng.lat;
        var ln = event.latLng.lng;
        console.log(lt());
        console.log(ln());
        this.onStoreMarker(lt(),ln());
    });
在外部,我有一个在触发事件时调用的方法,Angular2编译这个精细的方法,但是当我尝试在运行应用程序时单击激活事件时,我得到一个错误消息

未捕获类型错误:this.onStoreMarker不是函数

改变

您的
不是指您的组件

或者,旧的js方式:

var self = this; // store this in a variable to use it later
google.maps.event.addListener(this.map, 'click', function(event) {
        console.log(event.latLng);
        var lt = event.latLng.lat;
        var ln = event.latLng.lng;
        console.log(lt());
        console.log(ln());
        self.onStoreMarker(lt(),ln()); // <-- use it later
    });
var self=this;//将其存储在变量中,以便以后使用
google.maps.event.addListener(this.map,'click',函数(event){
控制台日志(事件日志);
var lt=event.latLng.lat;
var ln=event.latLng.lng;
console.log(lt());
log(ln());
self.onStoreMarker(lt(),ln());//更改

您的
不是指您的组件

或者,旧的js方式:

var self = this; // store this in a variable to use it later
google.maps.event.addListener(this.map, 'click', function(event) {
        console.log(event.latLng);
        var lt = event.latLng.lat;
        var ln = event.latLng.lng;
        console.log(lt());
        console.log(ln());
        self.onStoreMarker(lt(),ln()); // <-- use it later
    });
var self=this;//将其存储在变量中以便以后使用
google.maps.event.addListener(this.map,'click',函数(event){
控制台日志(事件日志);
var lt=event.latLng.lat;
var ln=event.latLng.lng;
console.log(lt());
log(ln());
onStoreMarker(lt(),ln())//
google.maps.event.addListener(this.map, 'click', (event)=> {
var self = this; // store this in a variable to use it later
google.maps.event.addListener(this.map, 'click', function(event) {
        console.log(event.latLng);
        var lt = event.latLng.lat;
        var ln = event.latLng.lng;
        console.log(lt());
        console.log(ln());
        self.onStoreMarker(lt(),ln()); // <-- use it later
    });