Ich habe die meisten Fragen ähnlich gelesen, aber immer noch, ich verstehe nicht, wie man .find()
in meiner App arbeiten.Angular 4 - Wie verwendet man .find() richtig?
Ich habe einen Dienst mit API:
export class VehicleService {
private defUrl = 'API';
constructor(private http: Http) { }
getVehicleByVehicleId(vehicleid?: any) {
const url = (!vehicleid) ? this.defUrl : 'API1&vehicle_id=' + vehicleid;
return this.http.get(url)
.map(res => res.json());
}
searchVehicleId(description?: string) {
const url = (!description) ? this.defUrl : 'API2&description=' + description;
return this.http.get(url)
.map(res => res.json().vehicles);
}
}
Komponente
export class VehicleComponent implements OnInit {
ngOnInit() {
this.searchQuery = new FormGroup({
vehicleDescription: new FormControl('', Validators.required)
});
}
constructor(private vehicleService: VehicleService) { }
public fleet: Fleet[];
public description: Description[];
public searchQuery: FormGroup;
public searchVehicleId: any;
public searchByVehicleId(searchQuery) {
this.vehicleService
.searchVehicleId(searchQuery.value.vehicleDescription)
.subscribe(searchQuery => {
this.description = searchQuery;
this.searchVehicleId = this.description.find() // <= HOW TO IMPLEMENT THIS?
this.vehicleService
.getVehicleByVehicleId(this.searchVehicleId)
.subscribe(searchQuery => {
this.vehicle = searchQuery;
})
});
}
interface Vehicle {
status: number;
dallases: Vehicle[];
}
interface VehicleDetails {
vehicle_id: number;
dallassettings: string;
dallasupdated: string;
dallas_list: DallasList[];
}
interface DallasList {
number: number;
auth: number;
}
//////////////////////////////////
//////////////////////////////////
interface Description {
vehicles: DescriptionDetails[];
}
interface DescriptionDetails {
id: number;
custom_description: string;
description: string;
}
API2
{
"vehicles": [{
"description": "SKODA ROOMSTER",
"id": 123456,
"custom_description": ""
}, {
"description": "SKODA ROOMSTER",
"id": 123456789,
"custom_description": ""
}]
}
Also, was ich hier zu tun ist: pass description
innerhalb FormGroup
- vehicleDescription
Feld zu searchByVehicleId
Methode. Hier möchte ich id
von übergeben vehicleDescription
velue finden (es ist "description"
Feld in API2). Wenn wir die id
finden, verwenden wir es weiter in this.vehicleService.getVehicleByVehicleId
...
Hauptproblem ist - ich habe keine Ahnung, wie man richtig implementieren .find()
.
Dank
https://stackoverflow.com/a/35398031/4826457 –
Gelöst: 'this.searchVehicleId = this.description.find (x => x. id === x.id) .id.toString(); '. Danke für die Hilfe, wenn ich diese Frage früher fand, würde es keine Frage von meiner Seite geben. – Haseoh