0
votes

Comment attribuer une valeur à une variable de la réponse HTTP dans Angular 6?

Je veux attribuer une valeur à une variable de la réponse HTTP. Dans la connexion HTTP de console montre la valeur mais la variable indique non définie. La variable est un type de classe.

commandez.model.ts strong> p> xxx pré>

commander-item.model.ts

 OrderId:10;
    OrderNo :"161235";
    PMethod :"Cash";
    GTotal :22.42;
    CustomerId :5;
    OrderItems:[
{orderItemID: 5, quantity: 5, itemID: 9, name: "Onion Rings", price: 2.99, …}
{orderItemID: 6, quantity: 3, itemID: 11, name: "Sweet Potato Fries", price: 2.49, …}
];


11 commentaires

Quel est le résultat de console.log (this.orderservice.formdata) ?


On dirait que vous utilisez une forme de modèle entraînée. De plus, étant donné que vous avez un modèle de données en place, vous devez envisager d'utiliser une forme réactive à la place. Avez-vous un échantillon Stackblitz pour travailler?


Résultat de la console.log (ce.orderservice.formdata) est indéfini. @PrashantPimpale


No.Siddajmera


@Skabidahmed, pouvez-vous en créer un?


Regardez vos journaux. Votre champ est en fait nommé orderid , mais vous essayez d'accéder à orderid . JavaScript est sensible à la casse. Respectez les conventions de nommage partout et tout sera plus facile. Voter à fermer pour la faute de frappe.


@Jbnizet a accepté avec vous, mais pour cela, il doit imprimer la valeur de formdata? Comme OP a dit (en commentaire) : console.log (this.orderservice.formdata) est indéfini.


Non, lisez le code. Le code est console.log (this.orderservice.formdata.orderid); . Donc, ce qui est sous-fini est this.orderservice.formdata.orderid .


@Skabidahmed, je vous suggérerais de créer un dans ce cas et de la partager à l'autre de sorte que quelqu'un puisse aider. Vous finiriez de courir dans des cercles sinon.


Je ne comprends pas d'où vient le nom "ordonnancier". Dans mon nom de champ de base de données est "ORDERID". Nizet @JB


Si je change de champ de classe modèle selon le journal, cela fonctionne. @Jbnizet


3 Réponses :


0
votes

Vous devez créer un définir code> et obtenir la méthode code> dans votre classe de service.

dans vos ordreservice.ts p>

getOrderDetail(id:number)
{
    this.orderService.getSingleOrder(id).subscribe((res: Order)=>{
        console.log(res);
        this.orderService.setFormData(res);
        console.log(this.orderService.getFormData());
    }
    error =>
    {
        console.log(error);
    });
}


2 commentaires

J'ai suivi votre suggestion, mais le résultat n'est toujours pas défini.


Pouvez-vous essayer cette classe en service formdata: tout;



0
votes

Modifiez votre interface en: xxx

}

votre interface de commande et "réponse" de type inadéquation.


1 commentaires

Merci. Ça marche. Mais je ne comprends pas d'où vient le nom de champ. Dans ma base de données, le champ est identique à mon interface.



0
votes

Vous obtenez non défini car dans la réponse, vous obtenez des "commandes" et que vous accédez à des "ordonnances".


0 commentaires