angular - 带有默认模板的 Angular 地图
问题描述
我正在使用AngularMaps创建地图组件
<agm-map [latitude]="latitude" [longitude]="longitude" [zoom]="zoom">
<ng-container *ngIf="!isCreating">
<agm-marker color="Blue" *ngFor="let locationGroup of locationEntitiesMap" (markerClick)="clickedMarker(locationGroup)"
[latitude]="locationGroup?.location?.latitude" [longitude]="locationGroup?.location?.longitude">
<agm-snazzy-info-window [maxWidth]="200" [closeWhenOthersOpen]="true">
<ng-template [ngTemplateOutlet]="options.template || defaultTemplate" [ngTemplateOutletContext]="{group: locationGroup}">
</ng-template>
<ng-template #defaultTemplate let-group="group">
<div>XJ543sB</div>
<ng-container *ngFor="let data of group.data">
<ion-label>Location: </ion-label>
<ion-label>{{group.location.name}} </ion-label>
<ion-button (click)="selectLocation(group.location, data)">
{{options.selectLabel}}
</ion-button>
</ng-container>
</ng-template>
</agm-snazzy-info-window>
</agm-marker>
</ng-container>
<agm-marker *ngIf="isCreating" [latitude]="latitude" [longitude]="longitude" [markerDraggable]="true"
(dragEnd)="markerDragEnd($event)">
</agm-marker>
</agm-map>
我检查了 dom 并验证了模板实际上是用 TemplateOutletContext 填充的,但是由于某种原因它总是呈现空白
我在这里的StackBlitz中创建了一个简化版本来表示问题,我正在尝试使用 [TemplateOutlet] 引用默认模板,但没有渲染
解决方案
您应该首先创建简单ng-template
,然后在您想要的任何内容中渲染:
<my-info-window [offset]="offset">
<ng-template>
<ng-template [ngTemplateOutlet]="defaultTemplate"></ng-template>
</ng-template>
<ng-template #defaultTemplate>
Phoenix
</ng-template>
</my-info-window>
推荐阅读
- firebase - 尝试与谷歌帐户连接时出现颤振错误
- php - 是否有执行以下代码的“Laravel”方式?
- laravel - 在 Laravel 中创建基于路由的通用授权
- pyspark - 重新水合推文/从部分流中提取数据
- react-native - 使用 GraphQL 并使用 FlatList 的 React-native 应用程序
- numpy - 按列值重新排列 numpy 多级数组
- google-sheets - 是否可以对选定的用户隐藏 Google 表格?
- regex - Varnish 4.0 多重匹配
- python - python客户端-服务器中的多个客户端文件传输,无需线程
- mysql - 从 Mysql 迁移到 Cassandra Spring boot