无法绑定到 'leafletOptions',因为它不是 'div' 的已知 属性

Can't bind to 'leafletOptions' since it isn't a known property of 'div'

我知道这是一个经常出现的问题,可以通过修复导入语句来解决。我目前有

import { LeafletModule } from 'node_modules/@asymmetrik/ngx-leaflet';
import * as L from 'leaflet';
import { } from '@types/leaflet';

我引用的是选项,因此:

options = {
    layers: [
        this.googleHybrid
    ],
    zoom: 1.49,
    zoomSnap: 0,
    center: L.latLng([180, -180])}

我觉得我 运行 陷入了这个问题,因为我将传单中的所有内容都导入为 L。有什么想法吗?

编辑:我还应该补充一点,这只是在测试中出现。

当 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 { }

a tutorial 解决了如何起床和 运行 Angular CLI,但它没有解决使用 ngx- 的应用程序模块的子模块的情况传单。

一些其他注意事项:

  • 当您导入 LeafletModule 时,您需要提供进入 node_modules 的路径是不寻常的。大多数构建管道将自动取消引用包。
  • @types/leaflet 导入也是如此。如果需要,大多数构建管道会自动提取类型信息。
  • 完全有效 import * as L from 'leaflet'; 您还可以根据需要导入特定项目,例如 import Map from {leaflet};

我修好了。我没有将正确的导入添加到父组件的测试配置文件中。现在一切都好!

我在测试中遇到了同样的问题, 但是当我添加:

imports: [
  LeafletModule,
  LeafletMarkerClusterModule
]

问题消失了。

如果它对任何人有帮助,当我没有将我的新 MapComponent 放入 app.module.ts 中的 declarations 时(使用 ngx-leaflet,否则正确导入)。