首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当agm-map在组件中时,则不呈现map。

当agm-map在组件中时,则不呈现map。
EN

Stack Overflow用户
提问于 2022-12-02 20:05:18
回答 1查看 18关注 0票数 0

目标

我试图在我自己的<agm-map>组件中包装一个<app-map>,但它甚至不在HTML中呈现。

agm (角谷歌地图)库配置良好,单独使用标记时地图显示良好,但我需要提供自己的组件。

我尝试过的事物

下面是组件模板的代码

map.component.html

代码语言:javascript
复制
<agm-map flex #map [latitude]="latitude" [zoomControl]="true" [longitude]="longitude" [zoom]="zoomLevel" [zoomControl]="hasZoomControls">
  <agm-marker [latitude]="latitude" [longitude]="longitude" [markerDraggable]="isMarkerDraggable" (dragEnd)="onDragEnd($event)"> </agm-marker>
</agm-map>

map.component.css

代码语言:javascript
复制
agm-map {
  height: 130px;
  width: 100%;
}

map.component.ts

代码语言:javascript
复制
import { AfterViewInit, Component, Input, ViewChild } from '@angular/core';
import { AgmMap } from '@agm/core';

@Component({
  selector: 'app-map',
  templateUrl: './map.component.html',
  styleUrls: ['./map.component.scss'],
})
export class MapComponent implements AfterViewInit {
  @Input() latitude = 0;
  @Input() longitude = 0;
  @Input() zoomLevel = 4;
  @Input() hasZoomControls = true;
  @Input() isMarkerDraggable = true;

  @ViewChild('map') public agmMap: AgmMap;

  ngAfterViewInit(): void {
    console.log('ngAfterViewInit');
    if (this.agmMap) {
      setTimeout(() => {
        console.log('Resizing');
        this.agmMap.triggerResize();
      }, 100);
    } else {
      console.log('map was not rendered');
    }
  }
  onDragEnd(event): void {
    console.log('dragged');
  }
}

以及我添加的新组件的shared.module.ts

代码语言:javascript
复制
@NgModule({
  declarations: [...,MapComponent] 

我还能错过什么?

EN

回答 1

Stack Overflow用户

发布于 2022-12-02 21:15:30

我所需要的就是导出共享模块上的组件。

代码语言:javascript
复制
exports: [ ..., MapComponent],
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74660952

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档