Ну, по моим наблюдениям, для этого требуется, чтобы вход был загружен еще до того, как был вызван, и вы присоединяете его к своему индексу до того, как этот вход когда-либо загрузится.
Конечно, это не сработает
var placesAutocomplete = places({
appId: 'myAppId',
apiKey: 'myApiKey',
container: document.querySelector('#addressInput')
});
Есть несколько других способов сделать это, но в моем случае я бы создал службу, что-то вроде
declare var places:any;
@Injectable({providedIn:'root'})
export class PlacesServices {
setup(){
var placesAutocomplete = places({
appId: 'myAppId',
apiKey: 'myApiKey',
container: document.querySelector('#addressInput')
});
}
}
затем внедрите его в ваш компонент и вызывайте его только тогда, когда загружен ввод с правильным идентификатором, вам нужен ngAfterViewInit, чтобы убедиться, что представления загружены
ngAfterViewInit(){
this.placesService.setup();
//i would be calling the setup here on the component with the input
}
Сценарий js может быть добавлен в index.html или точно так же, как указано в ответе Хьена.
Я только что напечатал это, возможно, есть какая-то опечатка, но вы должны понять. Надеюсь, это работает для вас!