gpt4 book ai didi

Angular Universal - 未定义谷歌

转载 作者:行者123 更新时间:2023-12-05 07:28:11 26 4
gpt4 key购买 nike

我有一个指令,使文本输入到谷歌的地方自动完成输入,看起来像:

import { Directive, AfterViewInit , Output, EventEmitter, NgZone, ElementRef } from '@angular/core'
// import { MapsAPILoader } from '@agm/core'
import { MapsAPILoader } from '@laurentgoudet/agm-core';


@Directive({
selector: '[locationAutocomplete]'
})
export class LocationAutocompleteDirective implements AfterViewInit {

@Output() locationChange: EventEmitter<any> = new EventEmitter();

constructor(
private mapsLoader: MapsAPILoader,
private ngZone: NgZone,
private searchElementRef: ElementRef
) { }

ngAfterViewInit() {
this.mapsLoader.load().then(() => {
let autocomplete = new google.maps.places.Autocomplete(this.searchElementRef.nativeElement, {
//types: ["address"]
});
autocomplete.addListener("place_changed", () => {
this.ngZone.run(() => {
// Get the place result
let place: any = autocomplete.getPlace();

// Verify result
if (place.geometry === undefined || place.geometry === null) {
return;
}

place.originalAddress = this.searchElementRef.nativeElement.value
this.locationChange.emit(place);
});
});
});
}
}

当我尝试使用 Universal 为应用程序提供服务时,问题就出现了。我收到以下错误:

ReferenceError: google is not defined

有办法解决吗?最简单的方法是将它放在 platformIsBrowser 下,但我需要它在页面加载时工作。

最佳答案

  • 您应该遵循所有步骤 here .
  • 如果您继续面临同样的问题,则必须创建 .spec.ts 文件,以便定义 google 并超越错误。

关于Angular Universal - 未定义谷歌,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53542292/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com