J'ai cette méthode dans mon service: mon erreur: p> export class PriceRule {
public static fromJson(json: Object): PriceRule {
return new PriceRule(
json['id'],
json['activity'],
json['duration'],
json['is_indoor'],
json['surface'],
json['hour_start'],
json['hour_end'],
json['price'],
json['currency'],
json['weekdays']
);
}
constructor(
public id: string,
public activity: string,
public duration: number,
public is_indoor: boolean,
public surface: string,
public hour_start: string,
public hour_end: string,
public price: number,
public currency: string,
public weekdays: number[]
) {}
}
3 Réponses :
Supprimer la carte
.map(response => PriceRule.fromJson(response));
Mais si je fais cela, il ne renvoie que des objets JSON du serveur, ce que je veux, c'est d'instancier tout le JSON dans un objet pricerule code> et pour les retourner (Pricerule [])
Utilisez-vous le httpClient de '@ angular / commun / http'; parce qu'il retourne l'objet
Vous confondez l'observable La carte RXJS, mappe votre réponse à une autre valeur, À partir de là, vous devez prendre votre tableau et cartonnez-le sur le Une autre façon de le faire, ce qui ne nécessite pas votre d'une autre manière, est de faire le mappe code> avec le tableau
Carte code>:
Pricerule code>. P>
fromjson code> méthode est: p>
pricerule code> une interface, si vous le faites, vous n'avez besoin de mappage: P>
return this.http.get<PriceRule[]>(this.url);
Quelqu'un a dit que Angular convertit le Json en un objet automatiquement, donc je n'ai pas besoin de le faire (Fromjson)?
@Fealo Oui, c'est déjà un objet. Mais votre Dijson travaille également avec un objet, pas avec JSON String. Si vous ne voulez pas de méthodes sur votre pricerule code>, vous pouvez également en faire une interface. Encore moins de code
Lorsque vous dites getpricerules (): observable
getpricerules code> renvoie observable qui retournera
PrixRULE [] < / Code> (tableau de règles de prix). Lorsque vous appelez la carte sur cet observable, il essaie d'appliquer la fonction de carte à la matrice de Pricerule (Pricerule []) et non à chaque objet Pricerle. De plus, JSON à la conversion d'objet est effectué par angulaire automatiquement. Donc, supprimez la fonction Carte. P>