Google maps angular 2通过函数的输出编写ngIf语句

Google maps angular 2通过函数的输出编写ngIf语句,google-maps,angular,typescript,Google Maps,Angular,Typescript,我正在使用sebm angular 2谷歌地图库,我有一个zoomChange事件的函数,如下所示: 在我的组件中,这是函数: testFunction(e){ console.log('test', e); } 要编写ngIf语句以在缩放级别为18时显示特定标记: 另一个问题是如何将放大事件链接到标记单击事件将属性设置为缩放级别 constructor(cdRef: ChangeDetectorRef) {} testFunction(e){ this.zoomLev

我正在使用sebm angular 2谷歌地图库,我有一个zoomChange事件的函数,如下所示:

在我的组件中,这是函数:

testFunction(e){
    console.log('test', e);
}
要编写ngIf语句以在缩放级别为18时显示特定标记:



另一个问题是如何将放大事件链接到标记单击事件

将属性设置为缩放级别

constructor(cdRef: ChangeDetectorRef) {}

testFunction(e){
    this.zoomLevel = e;
    this.cdRef.detectChanges();
    console.log('test', e);
}
当缩放级别匹配时显示组件:

<ng-container *ngIf="zoomLevel == 18">
  <sebm-google-map-marker *ngFor="let clustermarker of clusters" (markerClick)="clustermarkerClicked()" [latitude]="clustermarker.latitude" [longitude]="clustermarker.longitude" [iconUrl]="clustermarker.icon"></sebm-google-map-marker>
</ng-container>

将属性设置为缩放级别

constructor(cdRef: ChangeDetectorRef) {}

testFunction(e){
    this.zoomLevel = e;
    this.cdRef.detectChanges();
    console.log('test', e);
}
当缩放级别匹配时显示组件:

<ng-container *ngIf="zoomLevel == 18">
  <sebm-google-map-marker *ngFor="let clustermarker of clusters" (markerClick)="clustermarkerClicked()" [latitude]="clustermarker.latitude" [longitude]="clustermarker.longitude" [iconUrl]="clustermarker.icon"></sebm-google-map-marker>
</ng-container>


它是新语法[ngIf]还是仅与模板一起使用?为什么要使用模板标记?它只有在与
一起使用时才使用,我也使用了
,因为
元素上已经有一个
*ngFor
,并且一个元素一次只能有一个结构指令。您在[ngIf]=“zoomLevel”中输入了一个拼写错误,它可以工作,但只有在单击后才会消失。因此,当我从18放大到17时,它仍然显示标记,但在单击之后,它隐藏了提示。我更新了我的anwser。(
testFunction
)。如果视图没有更新,那么似乎有东西在Angulars区域之外运行。如上图所示,尝试显式调用更改检测。我是否也必须导入它?它是新语法[ngIf],还是仅与模板一起使用?为什么要使用模板标记?它只有在与
一起使用时才使用,我也使用了
,因为
元素上已经有一个
*ngFor
,并且一个元素一次只能有一个结构指令。您在[ngIf]=“zoomLevel”中输入了一个拼写错误,它可以工作,但只有在单击后才会消失。因此,当我从18放大到17时,它仍然显示标记,但在单击之后,它隐藏了提示。我更新了我的anwser。(
testFunction
)。如果视图没有更新,那么似乎有东西在Angulars区域之外运行。尝试像上面所示显式地调用更改检测。我是否也必须导入它?