Khi*_*han 1 forms validation angular
这是父HTML
<parent-component>
<child></child>
<button type="submit" [disabled]="!childForm.valid">
</parent-component>
Run Code Online (Sandbox Code Playgroud)
这是儿童HTML
<child>
<form #childform=ngform>
<input required type="text">
</form>
</child>
Run Code Online (Sandbox Code Playgroud)
我需要访问父组件中的子窗体状态
儿童模板:
<form #childform=ngForm>
<input required type="text">
</form>
Run Code Online (Sandbox Code Playgroud)
子组件:
export class ChildComponent implements OnInit {
@Output() validityChange = new EventEmitter<boolean>();
@ViewChild('childform') form: NgForm;
private validStatus: boolean;
ngOnInit() {
if (!this.form) return;
this.form.valueChanges
.subscribe(_ => {
if(this.validStatus !== this.form.valid) {
this.validStatus = this.form.valid;
this.validityChange.emit(this.form.valid);
});
}
}
Run Code Online (Sandbox Code Playgroud)
父模板:
<child (validityChange)="childFormValid = $event"></child>
<button type="submit" [disabled]="!childFormValid">
Run Code Online (Sandbox Code Playgroud)
父组件:
export class ChildComponent implements OnInit {
private childFormValid: boolean;
...
}
Run Code Online (Sandbox Code Playgroud)