En angulaire 8, mon format json pour transmettre les données est comme

 {
  "name": "",
  "address": {
    "line1": "",
    "pincode_id": ""
  }
}

Je crée le format pour passer les données pour soumettre le formulaire

Format() {
    let data = this.Form.controls;
    let ctofclass = new type();
    ctofclass.name = data['name'].value;
    ctofclass.line1 = data.address['line1'].value;
    ctrofclass.pincode_id = data.address['pincode_id'].value.id;
    return ctofclass;
  }

class type {
  name: string;
  line1: string;
  pincode_id:any;
  
}

Comment passer les données dans lesquelles le json à l'intérieur de json
lorsque j'utilise ce format, j'ai une erreur dans cette ligne ci-dessous :

ctrofclass.line1 = data.address['line1'].value;

core.js:6260 ERROR TypeError: Impossible de lire la propriété 'valeur' ​​de non définie

L'adresse est à l'intérieur de json et comment transmettre les données pour soumettre le formulaire

0
RANA 04 16 oct. 2020 à 13:31

1 réponse

Meilleure réponse

Vous devez soit définir l'adresse comme formGroup et line1 et pinecode_id comme formControls, soit utiliser uniquement pinecode_id et line1 comme formcontrols séparés sans les regrouper à l'intérieur de l'adresse si l'adresse n'a pas de valeur spéciale sur elle-même.

Exemple utilisant la deuxième solution (la plus simple) :

CustomFormControl = formbuilder.group({
   name: [initialValue],
   pincode_id: [address.pincode_id] // mapping is done here
   line1: [address.line1]
})

Ensuite, vous pouvez accéder à des valeurs de formulaire comme celle-ci CustomFormControl.controls[name].value

0
machal 16 oct. 2020 à 11:03