在更改选项时确保更新这些输入属性的值。
import { Component, Input, OnChanges, SimpleChanges } from '@angular/core'; import { GoogleMapsAPIWrapper } from '@agm/core';
@Component({
selector: 'app-maps',
template:
,
})
export class MapComponent implements OnChanges {
@Input() lat: number;
@Input() lng: number;
@Input() zoom: number;
constructor(private gmapsApi: GoogleMapsAPIWrapper) {}
ngOnChanges(changes: SimpleChanges) { if ( this.lat !== undefined && this.lng !== undefined && this.zoom !== undefined ) { this.gmapsApi.setCenter({ lat: this.lat, lng: this.lng }); this.gmapsApi.setZoom(this.zoom); } } }
在这个示例中,我们使用了GoogleMapsAPIWrapper包装器来手动更新API。通过比较旧值和新值,我们在输入属性发生更改时触发API的更新。由于我们在ngOnChanges()中使用了条件语句,因此我们可以确保我们在组件的属性完全定义之前不会触发Google Maps API更新。