angular – 从父组件重置表单
发布时间:2020-12-17 18:11:06 所属栏目:安全 来源:网络整理
导读:我有一个组件,我有模块弹出窗口,其中包含子组件: modal data-backdrop="static" #modalTask (onDismiss)="modalTask.close()" [size]="'lg'" modal-header h4 style="color:#fff"Add CRL Task/h4 /modal-header modal-body TaskComponent [isReset] ="reset
我有一个组件,我有模块弹出窗口,其中包含子组件:
<modal data-backdrop="static" #modalTask (onDismiss)="modalTask.close()" [size]="'lg'"> <modal-header> <h4 style="color:#fff">Add CRL Task</h4> </modal-header> <modal-body> <TaskComponent [isReset] ="resetForm" #tasks></crlTask> </modal-body> <modal-footer> <button type="button" class="btn btn-primary" (click)="onTaskClick();">Create</button> <button type="button" class="btn btn-default" data-dismiss="modal" (click)="modalTask.close();">Cancel</button> </modal-footer> </modal> 现在那个子组件如下: <form #taskForm="ngForm" name="rplForm"> //Contains Input Controls </form> 编辑 由于得到了一个解决方案,我将重置放在子组件的ngOnChanges中.这是Child组件的代码 taskForm: FormGroup; @Input() isReset: boolean = false; ngOnChanges() { if (this.isReset) { this.rplForm.reset(); } } 现在我在onTaskClick()上保存taskForm,我能够这样做.我无法做的是重置子组件下的表单. 我尝试使用reset()但是无法这样做.我可以从父组件中使用哪些东西? 解决方法
根据您使用ngOnChanges提供的更新,您需要在使用模板驱动表单时使用NgForm指令. rplForm不是FormGroup,你甚至不需要它,因为它属于反应形式.所以你要引用的是taskForm并重置它. rplForm在这里是多余的.
您需要导入ViewChild才能引用您的表单,然后在表单上调用reset: import { ViewChild } from '@angular/core'; import { NgForm } from '@angular/forms'; //... @ViewChild('taskForm') myForm: NgForm; ngOnChanges() { if (this.isReset) { this.myForm.reset(); } } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- twitter-bootstrap – 始终显示bootstrap-datepicker,而不仅
- 使用Scala Cats将函数列表应用于值
- 将Angular2指令添加到Netbeans IDE
- 使用Slick Table的Scala类型推断
- bash:在while循环中反击(kill和kill -9)
- twitter-bootstrap-3 – 如何在Bootstrap中创建带有关闭图标
- Scala编译器无法推断混合类型以进行模式匹配
- angularjs – Angular ui.router dynamic ui-sref
- 中兴软创的外包-北京之行
- angularjs – 在onsen UI中使用多个html文件