热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

AngularReactive表单:如何重置表单状态并在提交后保留值

如何解决《AngularReactive表单:如何重置表单状态并在提交后保留值》经验,为你挑选了3个好方法。

以角度反应形式.成功提交后如何仅重置表单状态

这是过程:

setValue从服务结果创建表单

修改值并提交表单

如果表单已正确提交到服务,则重置并保留值

如何将值保持为已修改并将表单重置为其原始状态.

form.reset()只是清空表单.但是,如果我不调用它,状态不会被重置,例如我的验证取决于表单状态类(原始,脏,有效等)仍然存在.



1> BlackHoleGal..:

@smnbbrv的解决方案效果很好.

您还可以将实际表单值提供给reset()方法.

鉴于事实myReactiveForm是组件中的Reactive表单.成功提交表单后(例如通过调用服务),您可以执行以下操作:

this.myReactiveForm.reset(this.myReactiveForm.value);

它将重置表单并将"新"表单值设置为您所形成的相同值.

这个方法可以在Tour of Hero示例官方Angular.io doc中看到


尝试过,此解决方案不起作用。因为反应式表单立即从输入字段接收最新值,所以传递给“重置”方法的“ this.myReactiveForm.value”不会反映表单的先前状态,而是表单上的最新值。因此,这种复位方式导致无操作。此解决方案下的表单保持不变,而不是按预期方式还原/重置为先前状态。

2> smnbbrv..:

这很简单:

this.form.markAsPristine();
this.form.markAsUntouched();

这将重置表单元数据,表单再次保持原始状态



3> Simon_Weaver..:

对角钢/材料​​用户的警告2

如果您使用角度材质控件mat-error来显示错误,则会增加复杂性。根据ErrorStateMatcher(除*ngIf您可能已应用的结果之外)的结果显示此类错误。

该默认ErrorStateMatcher显示错误,如果符合下列条件:

isErrorState(control: FormControl | null, form: FormGroupDirective | NgForm | null): boolean 
{
   return !!(control && control.invalid && (control.touched || (form && form.submitted)));
}

所以,这是什么说的是,如果表单已不断被提交和控制变得无效(每个验证规则),那么将显示错误。这通常不是您想要的(特别是如果您正在阅读此问题!)。

查看源代码- submitted = false除非您调用resetFormngForm指令(而不是FormGroup对象),否则无法进行设置。将状态设置为原始状态或未更改状态不会重置为false。

如果您使用的是问题mat-error,可能会发现为自定义逻辑创建自己的ErrorStateMatcher(简单接口)会更容易。

还要注意,ErrorStateMatcher仅采用角材料-而不是标准角形式的一部分。


推荐阅读
  • android listview OnItemClickListener失效原因
    最近在做listview时发现OnItemClickListener失效的问题,经过查找发现是因为button的原因。不仅listitem中存在button会影响OnItemClickListener事件的失效,还会导致单击后listview每个item的背景改变,使得item中的所有有关焦点的事件都失效。本文给出了一个范例来说明这种情况,并提供了解决方法。 ... [详细]
  • Linuxchmod目录权限命令图文详解在Linux文件系统模型中,每个文件都有一组9个权限位用来控制谁能够读写和执行该文件的内容。对于目录来说,执行位的作用是控制能否进入或者通过 ... [详细]
  • 本文介绍了lua语言中闭包的特性及其在模式匹配、日期处理、编译和模块化等方面的应用。lua中的闭包是严格遵循词法定界的第一类值,函数可以作为变量自由传递,也可以作为参数传递给其他函数。这些特性使得lua语言具有极大的灵活性,为程序开发带来了便利。 ... [详细]
  • PHP图片截取方法及应用实例
    本文介绍了使用PHP动态切割JPEG图片的方法,并提供了应用实例,包括截取视频图、提取文章内容中的图片地址、裁切图片等问题。详细介绍了相关的PHP函数和参数的使用,以及图片切割的具体步骤。同时,还提供了一些注意事项和优化建议。通过本文的学习,读者可以掌握PHP图片截取的技巧,实现自己的需求。 ... [详细]
  • Commit1ced2a7433ea8937a1b260ea65d708f32ca7c95eintroduceda+Clonetraitboundtom ... [详细]
  • Python正则表达式学习记录及常用方法
    本文记录了学习Python正则表达式的过程,介绍了re模块的常用方法re.search,并解释了rawstring的作用。正则表达式是一种方便检查字符串匹配模式的工具,通过本文的学习可以掌握Python中使用正则表达式的基本方法。 ... [详细]
  • 怎么在PHP项目中实现一个HTTP断点续传功能发布时间:2021-01-1916:26:06来源:亿速云阅读:96作者:Le ... [详细]
  • 本文介绍了绕过WAF的XSS检测机制的方法,包括确定payload结构、测试和混淆。同时提出了一种构建XSS payload的方法,该payload与安全机制使用的正则表达式不匹配。通过清理用户输入、转义输出、使用文档对象模型(DOM)接收器和源、实施适当的跨域资源共享(CORS)策略和其他安全策略,可以有效阻止XSS漏洞。但是,WAF或自定义过滤器仍然被广泛使用来增加安全性。本文的方法可以绕过这种安全机制,构建与正则表达式不匹配的XSS payload。 ... [详细]
  • 本文介绍了在Mac上安装Xamarin并使用Windows上的VS开发iOS app的方法,包括所需的安装环境和软件,以及使用Xamarin.iOS进行开发的步骤。通过这种方法,即使没有Mac或者安装苹果系统,程序员们也能轻松开发iOS app。 ... [详细]
  • 本文介绍了RxJava在Android开发中的广泛应用以及其在事件总线(Event Bus)实现中的使用方法。RxJava是一种基于观察者模式的异步java库,可以提高开发效率、降低维护成本。通过RxJava,开发者可以实现事件的异步处理和链式操作。对于已经具备RxJava基础的开发者来说,本文将详细介绍如何利用RxJava实现事件总线,并提供了使用建议。 ... [详细]
  • 现象:[root@localhost~]#dockerrun-d-p9000:80centos:httpdbinsh-cusrlocalbinstart.shd5b2bd5a7bc ... [详细]
  • 本文由编程笔记#小编为大家整理,主要介绍了css回到顶部按钮相关的知识,希望对你有一定的参考价值。 ... [详细]
  • 篇首语:本文由编程笔记#小编为大家整理,主要介绍了10分钟了解Android的事件分发相关的知识,希望对你有一定的参考价值。什么是事件分发?大家 ... [详细]
  • 1.webkit内核中的一些私有的meta标签,这些meta标签在开发webapp时起到非常重要的作用(1) ... [详细]
  • html结构 ... [详细]
author-avatar
ayo
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有