当 Angular.io 没有将 LeafletModule 正确加载到您的应用程序中时,就会发生这种情况。通常,您会执行以下操作:
首先,导入LeafletModule
您的应用程序模块:
import { BrowserModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core';
import { LeafletModule } from '@asymmetrik/ngx-leaflet';
import { AppComponent } from './app.component';
@NgModule({
declarations: [
AppComponent
],
imports: [
BrowserModule,
LeafletModule.forRoot()
],
providers: [],
bootstrap: [AppComponent]
})
export class AppModule { }
然后,如果您在应用程序模块的子模块中使用 ngx-leaflet,您也需要将其导入到该子模块中:
import { NgModule } from '@angular/core';
import { LeafletModule } from '@asymmetrik/ngx-leaflet';
@NgModule({
declarations: [
],
imports: [
LeafletModule
],
providers: []
})
export class MyModule { }
有一个教程介绍了如何使用 Angular CLI 启动和运行,但它没有解决您使用 ngx-leaflet 拥有应用程序模块的子模块的情况。
其他几点注意事项:
- 在 import 时需要提供 node_modules 的路径是不寻常的
LeafletModule
。大多数构建管道将自动取消引用包。
@types/leaflet
导入也是如此。如果需要,大多数构建管道会自动提取类型信息。
- 这样做完全有效
import * as L from 'leaflet';
您还可以根据需要导入特定项目,例如,import Map from {leaflet};