Angular应用程序重新加载后表单混乱
创始人
2024-10-30 15:00:43
0

使用LocalStorage或SessionStorage将表单数据保存在浏览器中,在Angular应用程序重新加载时恢复表单数据。以下是一个示例实现:

//service.ts import { Injectable } from '@angular/core';

@Injectable() export class FormDataService { private formDataKey = 'my_app_form_data';

constructor() { }

saveData(formData: any): void { localStorage.setItem(this.formDataKey, JSON.stringify(formData)); }

getData(): any { const data = localStorage.getItem(this.formDataKey); return data ? JSON.parse(data) : null; }

clearData(): void { localStorage.removeItem(this.formDataKey); } }

//component.ts import { Component, OnInit } from '@angular/core'; import { FormGroup, FormBuilder, Validators } from '@angular/forms'; import { FormDataService } from '../services/form-data.service';

@Component({ selector: 'app-my-form', templateUrl: './my-form.component.html', styleUrls: ['./my-form.component.css'] }) export class MyFormComponent implements OnInit { myForm: FormGroup;

constructor( private fb: FormBuilder, private formDataService: FormDataService ) { }

ngOnInit() { this.myForm = this.fb.group({ name: ['', Validators.required], email: ['', Validators.required] });

const savedData = this.formDataService.getData();
if (savedData) {
  this.myForm.patchValue(savedData);
}

}

onSubmit() { if (this.myForm.valid) { this.formDataService.saveData(this.myForm.value); } }

ngOnDestroy() { this.formDataService.clearData(); } }

在上面的示例中,FormDataService使用LocalStorage存储表单数据,并在MyFormComponent组件的OnInit方法中从LocalStorage中检索数据。然后,使用FormGroup的patchValue方法将数据填充到表单中。

在MyFormComponent的onSubmit方法中,如果表单有效,则调用FormDataService的saveData方法将FormData保存到LocalStorage中。在MyFormComponent的ngOnDestroy方法中,调用FormDataService的clearData方法清除LocalStorage中存储的FormData。

相关内容

热门资讯

透视肯定!wepoker永久免... 透视肯定!wepoker永久免费脚本(透视)外挂(切实是有挂)1、超多福利:超高返利,海量正版游戏,...
透视了解!德普之星辅助工具如何... 透视了解!德普之星辅助工具如何设置(透视)透视软件免费入口官网(都是有挂)1、德普之星辅助工具如何设...
透视透视!wepoker免费透... 透视透视!wepoker免费透视脚本(透视)可以下载游戏(原来存在有挂)1、用户打开应用后不用登录就...
透视肯定!德普之星辅助工具如何... 透视肯定!德普之星辅助工具如何打开(透视)透视软件免费入口官网(本来真的有挂)1、很好的工具软件,可...
透视了解!淘宝买wepoker... 透视了解!淘宝买wepoker透视有用吗(透视)透视脚本免费app(竟然是有挂)1、进入游戏-大厅左...
透视数据!德普之星辅助器怎么用... 透视数据!德普之星辅助器怎么用(透视)私人局透视(原来有挂);1、全新机制【德普之星辅助器怎么用软件...
透视了解!wejoker内置辅... 透视了解!wejoker内置辅助(透视)透视脚本免费(总是是真的有挂);暗藏猫腻,小编详细说明wej...
透视挂!德普之星透视辅助软件是... 透视挂!德普之星透视辅助软件是真的吗(透视)透视辅助软件(总是存在有挂)1、德普之星透视辅助软件是真...
透视总结!wepoker智能辅... 透视总结!wepoker智能辅助插件(透视)有插件(果然真的有挂)1、玩家可以在wepoker智能辅...
透视代打!德普之星透视辅助软件... 透视代打!德普之星透视辅助软件(透视)透视(本来真的是有挂)1、玩家可以在德普之星透视辅助软件软件透...