如何获取输入的所有值并将它们放在对象(localStorage)中的正确位置?

时间:2019-04-03 07:29:42

标签: javascript angular typescript ionic-framework

如何获取输入的所有值并将它们放在我的对象(localStorage)中的正确位置,而不必像下面的代码一样逐个检索它们?

这是我的更新信息功能:

updateContact() {


    if (this.onSubmit()) {

      this.eleveService.apiUpdateEleve(this.token, this.registerForm.get("firstName").value, this.registerForm.get("lastName").value
      ).subscribe((data: any) => {

        // récupération des informations du formulaire
        this.student['contact']['us_firstname'] = this.registerForm.get("firstName").value;
        this.student['contact']['us_lastname'] = this.registerForm.get("lastName").value;
        //  this.language = this.student['us_lang'] 
        this.student['us_lang'] = this.lang
        this.translate.use(this.student['us_lang']);

        // MAJ de l'objet
        localStorage.setItem("student", JSON.stringify(this.student));
        console.log('maj', this.student)
        this.navCtrl.navigateRoot('/e-tabs/explorer');

      })

    }

  }

这是我的对象:

OBJECT :

contact:
country: {id: "BE", name: "Belgique"}
login: "last@last.be"
newsletter: "1"
prest_feedback: "1"
us_address: "Rue des polders 13"
us_city: "Uccle"
us_email: "test@test.be"
us_firstname: "Munir"
us_gsm: "0485001128"
us_id: "5c9b35d8b4dd1"
us_lang: "fr"
us_lastname: "Nahman"
us_zip: "1180"
[Object][1]
[Front-end of the page][2]


  [1]: https://i.stack.imgur.com/SmxSZ.jpg
  [2]: https://i.stack.imgur.com/oknZd.jpg

2 个答案:

答案 0 :(得分:0)

由于它们都是键值对,所以最简单的方法是将整个对象字符串化并存储在localStorage中。

%ld

当您要从localStorage检索对象时,可以简单地将其检索并解析为对象。

localStorage.setItem('contactObject', JSON.stringify(yourObject));

编辑:建议您将const retreivedContactObject = JSON.parse(localStorage.getItem('contactObject')); console.log(retreivedContactObject); FormControl名称设置为与registerForm对象相同。

student

一旦您将formControls设置为与学生对象同名,

您可以通过以下方式简单地更新您的import { FormBuilder, FormGroup, Validators } from '@angular/forms'; . . student = { contact: { custName: undefined, custAddress: undefined, custTown: undefined, . . } }; constructor(private formBuilder: FormBuilder) { } registerForm: FormGroup = this.formBuilder.group({ custName: [null, Validators.required], custAddress: [null, Validators.required], custTown: [null, Validators.required], . . },

student

答案 1 :(得分:0)

var student = {
   contact: {
    name: "hello",
    class: "hello",
    age: "hello",
    gender: "hello",
    number: "hello",
    username: "hello",
    email: "hello",
    home: "hello",
    mobile: "hello"
   }
};

for ( var property in student.contact ) {
  console.log(property , student.contact[property])
}

这将允许您获取属性名称及其值。那么你可以做这样的事情。如果我理解正确

for ( var property in this.student.contact ) { 
    this.student['contact'][property] = this.registerForm.get(property).value;
}