Javascript 从@agm/core导入MouseeEvent在9中不起作用
在我的Angular 9应用程序中,我使用的是agm google map,所有东西都在工作,但当我导入MouseEvent时,它显示了一个错误(Javascript 从@agm/core导入MouseeEvent在9中不起作用,javascript,angular,Javascript,Angular,在我的Angular 9应用程序中,我使用的是agm google map,所有东西都在工作,但当我导入MouseEvent时,它显示了一个错误(src/app/place/place.component.ts:3:9-error TS2305:Module'../../../../../../../../../Projects/Angular/means2020/node_modules/@agm/core/agm core''没有导出的成员“MouseEvent”。)我在谷歌上搜索了一下,但
src/app/place/place.component.ts:3:9-error TS2305:Module'../../../../../../../../../Projects/Angular/means2020/node_modules/@agm/core/agm core''没有导出的成员“MouseEvent”。
)我在谷歌上搜索了一下,但没有找到任何合适的解决方案,任何机构都会提前向我表示感谢
这是may ts文件
import { Component, OnInit, ViewChild, ElementRef, NgZone } from '@angular/core';
import { MapsAPILoader } from '@agm/core';
import { MouseEvent } from '@agm/core';
markerDragEnd($event: MouseEvent) {
console.log($event);
this.latitude = $event.coords.lat;
this.longitude = $event.coords.lng;
this.getAddress(this.latitude, this.longitude);
}
MouseEvent
并非来自新的3.0.0-beta版以来的@agm/core
,而是来自谷歌地图脚本
尝试安装类型包
npm install --save @types/googlemaps
然后像这样使用它:
导入{
组成部分,
奥尼特,
ViewChild,
ElementRef,
NgZone
}从“@angular/core”开始;
进口{
MapsAPILoader
}来自“@agm/core”;
markerDragEnd($event:google.maps.MouseEvent){
console.log($event);
this.latitude=$event.coords.lat;
this.longitude=$event.coords.lng;
this.getAddress(this.latitude,this.longitude);
}
您的tsconfig
也应更新,以包括:
"types": [
"googlemaps"
]
这是因为agm()的最新版本不是来自新的3.0.0-beta版的
@agm/core
,而是来自谷歌地图脚本
尝试安装类型包
npm install --save @types/googlemaps
然后像这样使用它:
导入{
组成部分,
奥尼特,
ViewChild,
ElementRef,
NgZone
}从“@angular/core”开始;
进口{
MapsAPILoader
}来自“@agm/core”;
markerDragEnd($event:google.maps.MouseEvent){
console.log($event);
this.latitude=$event.coords.lat;
this.longitude=$event.coords.lng;
this.getAddress(this.latitude,this.longitude);
}
您的tsconfig
也应更新,以包括:
"types": [
"googlemaps"
]
这是由于agm()的最新版本造成的。如前所述,
MouseEvent
并非来自@agm/core
3.0.0-beta版,但来自谷歌地图脚本
您必须添加到您的tsconfig
"types": [
"googlemaps"
]
但是,该接口没有名为coord
的属性,而是有latLng
,它有两个功能,lat
和lng
因此,与其使用
this.latitude = $event.coords.lat;
this.longitude = $event.coords.lng;
您的代码应该是:
markerDragEnd($event: google.maps.MouseEvent) {
console.log($event);
this.latitude = $event.latLng.lat();
this.longitude = $event.latLng.lng();
this.getAddress(this.latitude, this.longitude);
}
我自己也试过了,因为我遇到了同样的问题,希望它有用。如前所述
MouseEvent
不是从@agm/core新推出的
3.0.0-beta版,但来自谷歌地图脚本
您必须添加到您的tsconfig
"types": [
"googlemaps"
]
但是,该接口没有名为coord
的属性,而是有latLng
,它有两个功能,lat
和lng
因此,与其使用
this.latitude = $event.coords.lat;
this.longitude = $event.coords.lng;
您的代码应该是:
markerDragEnd($event: google.maps.MouseEvent) {
console.log($event);
this.latitude = $event.latLng.lat();
this.longitude = $event.latLng.lng();
this.getAddress(this.latitude, this.longitude);
}
我自己也试过了,因为我也遇到了同样的问题,希望它有用。我已经安装了这个,但它不起作用,但当我在package.json文件中将agm/core版本更改为1.1.0时,它起作用了。这是因为最新版本的agm/core已经删除了自己MouseEvent的导出,现在使用google.maps one。检查您的
tsconfig
,它应该将googlemaps
包含到类型中
我做了所有这些事情但不工作只需要更改pacakge.jsonYeah中的@agm/core版本它对我也不起作用,将googlemaps类型添加到我的所有tsconfig中,并安装了库“@types/googlemaps”:“3.39.12”
此版本运行良好。我已经安装了此版本,但它不起作用,但当我在package.json文件中将agm/core版本更改为1.1.0时,它起作用了。这是因为最新版本的agm/core已经删除了自己的MouseEvent导出,现在使用google.maps one。检查您的tsconfig
,它应该将googlemaps
包含到类型中
我做了所有这些事情但不工作只需要更改pacakge.jsonYeah中的@agm/core版本它对我也不起作用,将googlemaps类型添加到我的所有tsconfig中,并安装了库“@types/googlemaps”:“3.39.12”
此版本运行良好。