Angular 如何在使用自定义输入表单时获得正确的表单状态?
我在组件中使用自定义Angular 如何在使用自定义输入表单时获得正确的表单状态?,angular,typescript,validation,Angular,Typescript,Validation,我在组件中使用自定义输入,并将其添加到父组件中。除了表单.status之外,其他一切都可以正常工作。当有效/无效时,我无法获得正确的状态来切换按钮 我应该更换/修复的缺失部分在哪里 `<button mat-raised-button name="buttonName" [disabled]="!form.valid" [color]="'primary'"> </button>` input.component
输入
,并将其添加到父组件中。除了表单.status
之外,其他一切都可以正常工作。当有效/无效时,我无法获得正确的状态来切换按钮
我应该更换/修复的缺失部分在哪里
`<button mat-raised-button
name="buttonName"
[disabled]="!form.valid"
[color]="'primary'">
</button>`
input.component.html
:
<form #form="ngForm">
<app-input [parentFormGroup]="form"
[label]="'e-mail'"
[type]="'text'"
[name]="'User-Email'"
[required]="true"
[pattern]="(email_regEx)">
</app-input>
</form>
<input matInput
type="{{inputType}}"
name="{{inputName}}"
[(ngModel)]="model"
#ngForm="ngModel"
(ngModelChange)="modelChange.next($event)"
required="{{required}}"
pattern="{{regEx}}"
#{{inputName}}
>
这个问题已经解决了。我确实在父组件中添加了
ngDefaultControl
。因此,明确地说,在父组件中嵌入自定义输入应该是:
:
export class InputComponent implements OnInit {
public parentFormGroup: FormGroup;
@Input('label') inputLabel: string;
@Input('name') inputName: string;
@Input('type') inputType: string;
@Input('pattern') regEx: string;
@Input() required = true;
@Input() model: any;
@Output() modelChange = new EventEmitter();
constructor() {
}
ngOnInit() {
}
}
<form #form="ngForm">
<app-input [parentFormGroup]="form"
[label]="'e-mail'"
[type]="'text'"
[name]="'User-Email'"
[required]="true"
[pattern]="(email_regEx)"
ngDefaultControl>
</app-input>
</form>