Angular2自定义组件 – 标记为原始且未触及
发布时间:2020-12-17 08:33:43 所属栏目:安全 来源:网络整理
导读:我在Angular 2.1中有一个模板驱动的表单,包含许多标准控件( input, select等)和一个自定义控件,它本身包含多个输入元素. 我已经在自定义控件上实现了ControlValueAccessor,并且它正确地将其更改/触摸/有效值传播到父窗体. 但是..在父窗体上我有一个保存按钮,
我在Angular 2.1中有一个模板驱动的表单,包含许多标准控件(< input>,< select>等)和一个自定义控件,它本身包含多个输入元素.
我已经在自定义控件上实现了ControlValueAccessor,并且它正确地将其更改/触摸/有效值传播到父窗体. 但是..在父窗体上我有一个保存按钮,保存后我想清除脏/触摸状态(因为这会影响应用的css),如下所示: save(myForm: NgForm) { myForm.form.markAsPristine(); myForm.form.markAsUntouched(); } 这适用于顶级父窗体和自定义控件本身中的所有元素,但< input>自定义控件中的字段仍标记为已触摸/脏(并且接收预先保存的样式). 是否有一种方法可以在更改脏/触摸状态时通知自定义控件,以便它可以清除它的子< input>要匹配的元素?似乎如果< input>元素在自定义控件中,它们不会通过在父窗体上调用markAsPristine / Untouched来更新. 谢谢!
尝试像这样添加控件[‘nameOfControl’]
myForm.form.controls['nameOfControl'].markAsPristine(); 上面的代码仅适用于表单控件. 以下似乎是一个很好的工作: active = true; newModel() { this.model = new yourModel(2,'',true,''); this.active = false; setTimeout(() => this.active = true,0); } 使用新模型重置表单并恢复’pristine’类状态. 希望有所帮助 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- Angular 4.3拦截器 – 如何使用?
- 在Unix中使用find命令时忽略“是一个目录”
- bootstrap菜单、按钮及导航学习笔记5-1
- BootStrap入门教程 (三)
- webservice的原理及概念
- docker – 可以访问错误检查上下文:’can not stat’.gvf
- angularjs – 1.3.0 rc0之后ngChange的问题
- angularjs – 我如何使用$ rootScope在Angular存储变量?
- scala – 在Mac OSX上运行IntelliJ中第一个playframework的
- Linux通过命令压缩与解压缩的方法| tar, tar.gz, tar.bz2