如何获取输入的所有值并将它们放在我的对象(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
答案 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;
}