【发布时间】:2018-07-14 22:56:36
【问题描述】:
我在子组件中有一个角度反应形式,在父组件中有一个 提交 按钮。默认情况下,父组件中的提交按钮是禁用的。我需要一种机制,通过它我应该能够检查子组件中的表单状态,无论是 valid 还是 invalid。
当状态valid变为true时,父组件中的按钮应该是启用的。
如何做到这一点?
【问题讨论】:
标签: components angular2-forms interaction
我在子组件中有一个角度反应形式,在父组件中有一个 提交 按钮。默认情况下,父组件中的提交按钮是禁用的。我需要一种机制,通过它我应该能够检查子组件中的表单状态,无论是 valid 还是 invalid。
当状态valid变为true时,父组件中的按钮应该是启用的。
如何做到这一点?
【问题讨论】:
标签: components angular2-forms interaction
我的解决方案
app.child.ts
@Component({
selector: 'app-child',
template: `...`
})
export class AppChild {
form: FormGroup;
}
app.parent.html
<app-child #child></app-child>
<button [disabled]="child.form.invalid">Submit</button>
【讨论】:
ValidatorService 以及一些如何通知parentComponent 检查和emit 该服务的验证状态和subscribe 从parentComponent 到该状态,如果有任何变化,它将被赶上callback function 做你想做的事
您需要在子组件中订阅 valueChanges 事件,您可以在其中发出表单的值,
this.formname.valueChange.subscribe(status=>{ this.valueEmit.emit(this.formname.valid) });
在您的父组件模板中检查该发出事件的状态。
【讨论】: