Angular 6, AGM sélectionne la première adresse dans google autocomplete

Am à l'aide de l'AGA pour google adresse suggestion dans ma angulaire du projet. Je veux sélectionner la première adresse si l'utilisateur n'en a pas sélectionné.

quiconque s'il vous Plaît donner quelques suggestions pour cette.

Merci d'avance.

0
demandé sur saravana va 2018-08-09 08:12:17

1 réponses

après tant de temps passé à chercher la solution finalement trouvé,

si vous avez déjà mis en œuvre la suggestion d'adresse google(autocomplete) dans angulaire 2,4 5 & 6 et que vous voulez sélectionner la première suggestion par défaut, nous allons ici avec Exemple de travail,

nous devons créer un service séparément et nous devons l'abonner. J'ai donné l'exemple de travail ci-dessous,

Important: soyez patient pour regarder et changer les noms et tout cela va certainement fonctionner.


app.composant.ts

import { Component } from '@angular/core';
import { MapsAPILoader } from '@agm/core';
import { PlacePredictionService } from './place-prediction.service';

import { Observable } from 'rxjs/Observable';

@Component({
   selector: 'app-root',
   templateUrl: './app.component.html',
   styleUrls: ['./app.component.css']
})
export class AppComponent {

  private searchTerm: string;
  private results$: Observable<any[]>;

  testResult = [{description: 'test'},{description: 'test'}];

  constructor(
    private mapsAPILoader: MapsAPILoader,
    private placePredictionService: PlacePredictionService
  ){}

  onSearch(term: string){

  this.searchTerm = term;

  if (this.searchTerm === '') return;

  this.results$ = this.placePredictionService.getPlacePredictions(term);

 }

}

lieu-prédiction.service.ts

import { Injectable } from "@angular/core";
import { MapsAPILoader } from "@agm/core";

import { Observable } from "rxjs/Observable";

import "rxjs/add/observable/of";
import "rxjs/add/observable/bindCallback";

@Injectable()
export class PlacePredictionService {
  private autocompleteService;

  constructor(private mapsAPILoader: MapsAPILoader) {

    this.mapsAPILoader.load().then(() => {
      this.autocompleteService = new 
      google.maps.places.AutocompleteService();
    });

  }

  // Wrapper for Google Places Autocomplete Prediction API, returns 
  observable

  getPlacePredictions(term: string): Observable<any[]> {
    return Observable.create(observer => {
    // API Call

    this.autocompleteService.getPlacePredictions({ input: term }, data => {
      let previousData: Array<any[]>;

      // Data validation

      if (data) {
        console.log(data);
        previousData = data;
        observer.next(data);
        observer.complete();
      }

      // If no data, emit previous data

      if (!data) {
        console.log("PreviousData: ");
        observer.next(previousData);
        observer.complete();

        // Error Handling

      } else {
        observer.error(status);
      }

    });

    });

    }
  }

App.composant.html

<h1>Google Places Test</h1>

<p>Angular 5 &amp; RxJS refresher</p>

<input
  type="search"
  placeholder="Search for place" 
  autocomplete="off"
  autocapitalize="off"
  autofocus
  #search
  (keyup)="onSearch(search.value)"/> 

 <p>{{ searchTerm }}</p>

 <ul>

   <li *ngFor="let result of results$ | async "> {{result.description}} 
   </li>

 </ul>

pour moi, il est travaillé, si vous faites face à un problème s'il Vous Plaît ajouter votre commentaire (ou envoyez-moi @ saravanava3@gmail.com), si je suis au courant de votre requête je vais répondre

1
répondu saravana va 2018-08-09 14:02:05