angular – agm标记不能从ngfor渲染

前端之家收集整理的这篇文章主要介绍了angular – agm标记不能从ngfor渲染前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我对角度很新,我认为这是一个基本问题.

我创建我的地图

<agm-map [latitude]="lat" [longitude]="lng">
    <agm-marker [latitude]="location.lat" [longitude]="location.lng" *ngFor="let location of locations; let i=index">
        <agm-snazzy-info-window [maxWidth]="200" [closeWhenOthersOpen]="true">
            <ng-template>
                <strong>{{location.title}}</strong>
                <p>adresse</p>
            </ng-template>
        </agm-snazzy-info-window>
    </agm-marker>
</agm-map>

当我手动设置标记时,一切正常,但是当我使用* ngFor遍历我的列表时,会创建标记的html,但显然在地图脚本之后查找标记,因此不会渲染任何标记(地图本身)是).

从我的控制器:

export class LocationMapComponent implements OnInit {

 lat: number = 51.678418;
 lng: number = 7.809007;
 locations: Location[];

 async ngOnInit() {

}

public async getLocations()  {
    this.locations = await this._locationService.getLocations();

}

constructor(private _locationService:LocationService,private _coreCOMService: CoreCOMService,private _coreLanguageService: CoreLanguageService,private _coreLogService: CoreLogService,private _componentFactoryResolver: ComponentFactoryResolver,private _coreSystemService: CoreSystemService) {

    this.getLocations();
}

}

这些位置是从一个从远程数据库获取它们的服务加载的.我确实认为问题是在执行ngFor循环之前渲染了地图,我不确定如何确保首先执行循环或者如何告诉地图仅在循环之后(重新)渲染标记已经完成了.

如上所述,这可能是非常基本的,但我现在感到茫然,谢谢.

纬度/经度必须是数字类型.如果它们作为字符串从API或某种服务返回,则需要转换它们.根据我的经验,它似乎要求严格键入数字.
原文链接:https://www.f2er.com/angularjs/240356.html

猜你在找的Angularjs相关文章