Angular 需要 ng
Angular ng-required
我的 FormGroup 有一些 FormControl,它们都是必需的,但我希望我的两个 FormControl 只有在 component.ts 中的布尔值是 true 时才需要 我试过 ng-required="myboolean"
但这没有用。
有没有办法做到这一点或解决方法?
//编辑
onButtonClick()
{
this.passwordFormControl = !this.passwordFormControl;
if(this.passwordFormControl)
{
this.passwortButton = "Cancle change Password";
this.benutzerAnlageForm.get('password').setValidators(Validators.required);
}
else
{
this.passwortButton = "Change password";
this.benutzerAnlageForm.get('password').clearValidators();
}
}
<form [formGroup]="MyForm" (ngSubmit)="onMyForm()">
<div *ngIf="passwordFormControl" class = "form-group">
<label for="password">Password</label>
<input formControlName="password" type="password" id="password"
<-- Some more Form Controles that are always required -->
<button type="submit" [disabled]="!MyForm.valid" class ="btn btn-primary">Save</button>
<button *ngIf="edit" type="button" class="btn btn-primary" (click)="onButtonClick()">{{passwortButton}}</button>
</form>
密码 FormControl 是我不希望总是需要的控件。问题是,如果我从表单本身的密码 FormControl 中删除所需的内容,并且按钮似乎无法识别该表单现在再次有效。
ng-required 适用于 AngularJs 即 1.x。对于 Angular 或 Angular 2+ 你可以这样做:
<input [required]="myboolean">
您还可以在布尔值发生变化时在 component.ts 中动态执行此操作,如下所示:
this.form.get('control-name').setValidators(Validators.required);
this.form.get('control-name').updateValueAndValidity();
要删除:
this.form.get('control-name').clearValidators();
this.form.get('control-name').setValidators(/*Rest of the validators if required*/);
this.form.get('control-name').updateValueAndValidity();
// To add validation
this.myForm.controls.controlName.setValidators(Validators.required);
// To clear validation
this.updateForm.controls.controlName.clearValidators();
// In either case, call this method
this.updateForm.controls.controlName.updateValueAndValidity();
我的 FormGroup 有一些 FormControl,它们都是必需的,但我希望我的两个 FormControl 只有在 component.ts 中的布尔值是 true 时才需要 我试过 ng-required="myboolean"
但这没有用。
有没有办法做到这一点或解决方法?
//编辑
onButtonClick()
{
this.passwordFormControl = !this.passwordFormControl;
if(this.passwordFormControl)
{
this.passwortButton = "Cancle change Password";
this.benutzerAnlageForm.get('password').setValidators(Validators.required);
}
else
{
this.passwortButton = "Change password";
this.benutzerAnlageForm.get('password').clearValidators();
}
}
<form [formGroup]="MyForm" (ngSubmit)="onMyForm()">
<div *ngIf="passwordFormControl" class = "form-group">
<label for="password">Password</label>
<input formControlName="password" type="password" id="password"
<-- Some more Form Controles that are always required -->
<button type="submit" [disabled]="!MyForm.valid" class ="btn btn-primary">Save</button>
<button *ngIf="edit" type="button" class="btn btn-primary" (click)="onButtonClick()">{{passwortButton}}</button>
</form>
密码 FormControl 是我不希望总是需要的控件。问题是,如果我从表单本身的密码 FormControl 中删除所需的内容,并且按钮似乎无法识别该表单现在再次有效。
ng-required 适用于 AngularJs 即 1.x。对于 Angular 或 Angular 2+ 你可以这样做:
<input [required]="myboolean">
您还可以在布尔值发生变化时在 component.ts 中动态执行此操作,如下所示:
this.form.get('control-name').setValidators(Validators.required);
this.form.get('control-name').updateValueAndValidity();
要删除:
this.form.get('control-name').clearValidators();
this.form.get('control-name').setValidators(/*Rest of the validators if required*/);
this.form.get('control-name').updateValueAndValidity();
// To add validation
this.myForm.controls.controlName.setValidators(Validators.required);
// To clear validation
this.updateForm.controls.controlName.clearValidators();
// In either case, call this method
this.updateForm.controls.controlName.updateValueAndValidity();