【发布时间】:2021-04-28 06:01:20
【问题描述】:
当嵌套子表单无效时,我想禁用父表单上的按钮。
这是父表单组件:
<hello name="{{ name }}"></hello>
<h2>Complex form with address component</h2>
<form #myForm="ngForm">
<div>
<label>Firstname:</label>
<input type="text" name="firstName" ngModel>
</div>
<div>
<label>Lastname:</label>
<input type="text" name="lastName" ngModel>
</div>
<address></address>
</form>
<div>
Root group valid: {{ myForm.valid }}
</div>
<br>
<!-- I want to disable this button -->
<button [disabled]="!myForm.controls.address.valid">
Submit Address Only
</button>
这是子地址表单组件:
import { Component } from '@angular/core';
import { ControlContainer, NgForm } from '@angular/forms';
@Component({
selector: 'address',
template: `
<fieldset ngModelGroup="address" #group="ngModelGroup">
<div>
<label>Zip:</label>
<input type="text" name="zip" ngModel>
</div>
<div>
<label>Street:</label>
<input type="text" name="street" ngModel>
</div>
<div>
<label>City:</label>
<input type="text" name="city" ngModel required>
</div>
</fieldset>
Child group valid: {{ group.valid }}
`,
viewProviders: [ { provide: ControlContainer, useExisting: NgForm } ]
})
export class AddressComponent {}
我尝试了[disabled]="!myForm.controls.address.valid",但收到一条错误消息,指出address 是undefined
这是一个堆栈闪电战https://stackblitz.com/edit/angular-jmdawu?file=app%2Fapp.component.html
【问题讨论】:
标签: angular angular-forms