【发布时间】:2019-01-03 03:39:33
【问题描述】:
我正在使用模板驱动表单。
父组件 HTML
<form #BasicForm="ngForm" (ngSubmit)="onBasicDetailsSubmit()" id="BasicForm">
<app-input-text [(sharedVar)]="dashboardDetails.Text1" [isMandatory]="true" ></app-input-text>
<app-input-text [(sharedVar)]="dashboardDetails.Text2" [isMandatory]="false"></app-input-text>
<input type="submit" value="Save" [disabled]="!BasicForm.valid" class="btn btn-success">
</form>
子组件
TS
@Input() sharedVar: number;
@Input() isMandatory: boolean;
@Output() sharedVarChange = new EventEmitter();
change(newValue) {
this.sharedVar = newValue;
this.sharedVarChange.emit(newValue);
}
HTML
<input type="text" class="form-control" [(ngModel)]="sharedVar" (ngModelChange)="change($event)" [attr.required]="isMandatory">
提交按钮没有被禁用。我曾尝试在子组件以及父组件选择器中编写required,但它不起作用。请帮忙。
【问题讨论】:
-
在父组件 html 中你没有访问 sharedVarChange no?
-
没有。我现在正在尝试
-
您可以在父母和孩子之间共享相同的
form。 stackoverflow.com/questions/51281527/… 唯一的区别是您有模板驱动的表单。这不应该是一个问题。完成后,您可以获取表单控件以在任一组件中进行验证
标签: angular angular2-forms angular6 angular4-forms angular-validation