J'ai une API Web qui renvoie la liste des sources de données pour un ID utilisateur donné. L'application angulaire utilise cette API Web pour obtenir la liste des sources de données. Dans la méthode d'abonnement, console.log (data.length) s'imprime comme 2 (comme prévu) mais console.log (data [0] .server); imprime comme non défini. Je ne pouvais pas comprendre pourquoi? Toute aide serait très appréciée. sortie postman de l'API Web
[
{
"USERID": "user1",
"SERVER": "localhost",
"AUTHENTICATION": "WINDOWS",
"DATABASE": "db1"
},
{
"USERID": "user1",
"SERVER": "localhost",
"AUTHENTICATION": "SQL",
"DATABASE": "db2"
}
]
La classe de source de données sur angulaire est définie comme ci-dessous:
export class Datasource {
userid: string;
server: string;
authentication: string;
database: string;
}
Un service
getDatasource():Observable<Datasource[]>{
let userid = this._authService.name;
let params = new HttpParams()
params = params.set('USERID', userid);
return this._httpClient.get<Datasource[]>(`https://localhost:8080/api/DataSources/ByUserId`, {params: params})
.pipe(
catchError(this.handleError)
);
}
Composant:
import { Component, OnInit } from '@angular/core';
import { Datasource } from 'src/app/model/datasource';
import { DbService } from 'src/app/services/db.service';
@Component({
selector: 'app-datasources',
templateUrl: './datasources.component.html',
styleUrls: ['./datasources.component.css']
})
export class DatasourcesComponent implements OnInit {
constructor(private _dbService: DbService) {
}
ngOnInit(): void {
this._dbService.getDatasource()
.subscribe(data => {
console.log('data length: ' + data.length); //prints as 2 as expected(I have 2 records in db, so thats correct)
//console.log(typeof(data[0])); //prints as object
//the following output in debug window is 'undefined'?
console.log('server[0]: ' + data[0].server);
console.log('server[1]: ' + data[1].server);
});
}
}
L'une des deux choses pourrait se produire:
getDatasource
-Observable pourrait être de retour une valeur qui ne respecte pas l' Datasource
objet que vous fournissez (un tuyau pourrait le modifier).getDatasource
-Observable interagit (pour acquérir des données) peut renvoyer des données auxquelles vous ne vous attendez pas.Voici quelques suggestions:
View > Developer > Developer Tools
sélectionnez l' Network
onglet -table, et sélectionnez la réponse qui est "revenant du serveur".Cet article est collecté sur Internet, veuillez indiquer la source lors de la réimpression.
En cas d'infraction, veuillez [email protected] Supprimer.
laisse moi dire quelques mots