Tak jsem si tento program v úhlové, kde tak daleko jsem se ve směrovací číslo od uživatele, a klikněte na tlačítko vysílá, že vstup do funkce, kde je odeslána z rozhraní api, převést do Lat Long & souřadnice. viz níže:
home.component.html
<div class="center" style="margin-top:50px;">
<label for="ZipCode"><b>Zip Code</b></label>
</div>
<div class="center">
<input name="zipcode" #zipcode id="zipcode" type="text" placeholder="Enter Zip Code" maxlength="5">
</div>
<div class="center" style="margin-top:100px;">
<button class="button button1" (click)="getCoords(zipcode.value)" ><b>Retrieve Data</b></button>
</div>
jasně to je jen fragment kódu, ale to je dost pro účely zobrazení. další je funkce s api a to pak posune do zobrazení stanic komponenty/stránky:
domů.komponenta.ts
export class HomeComponent implements OnInit {
constructor(
private router: Router
){}
ngOnInit(): void {
}
getCoords(val: any){
var url = "http://www.mapquestapi.com/geocoding/v1/address?key=MYKEY&location=" + val;
fetch(url)
.then((res) => res.json())
.then((data) => {
var lat = data.results[0].locations[0].displayLatLng.lat;
var long = data.results[0].locations[0].displayLatLng.lng;
this.router.navigate(["/stations"])
})
}
}
stanice.komponenta.ts - jak můžete vidět, nic ještě tady, protože nemůžu přijít na to, co dělat
import { Component, Input, OnInit } from '@angular/core';
@Component({
selector: 'app-stations',
templateUrl: './stations.component.html'
})
export class StationsComponent implements OnInit {
ngOnInit(): void {
}
}
teď to všechno funguje správně. testoval jsem lat a dlouhé proměnných v console-log a vrátí lat a dlouho v pohodě. můj problém je, že potřebuju poslat lat a dlouhé hodnotu pro další komponenty/stránky mají být použity ve výpočtech. nebudu lhát, že jsem prohledali internet se snaží najít způsob, jak to udělat tak, ale zřejmě to není snadné v úhlové, aby tak učinily. máte někdo nějaké nápady na absolvování lat a dlouhé hodnotu pro další složkou/stránka?
dataLat: lat
a chyba říká, že:Argument of type '{ dataLat: any; dataLong: any; }' is not assignable to parameter of type 'NavigationExtras'. Object literal may only specify known properties, and 'dataLat' does not exist in type 'NavigationExtras'.