У меня следующая проблема. Нажмите, чтобы проверить блиц стека .
Я устанавливаю реактивную форму в конструкторе:
this.formGroup = this.fb.group({
'family_name_en': new FormControl('', Validators.required),
'family_name_ar': new FormControl('', [Validators.required, Validators.pattern('[\u0600-\u06FF ]*')]),
'unit_id': new FormControl({ value: '', disabled: true }, [Validators.required])
});
И в хуке ngOnInti()
я получаюданные, относящиеся к unit_id
.
Поскольку я переносил данные с платформы на другую, фамилия на арабском языке не рекомендовалась, но сейчас это так.Поэтому большая часть данных будет загружаться без арабского имени.
Проблема в том, что кнопка всегда включена, и что мне нужно сделать, если пользователь хочет обновить этот unit_id
, он должен добавить арабскийимя, поэтому кнопка включена.
Если форма действительна, не повредит включение кнопки при загрузке компонента.
Вот метод getData()
, который получает данные и устанавливаетгруппа форм управляет значениями:
ngOnInit() {
this.getDataById();
}
getDataById ():
getDataById() {
this.showSpinner = true;
this.auth.getDataById(this.unit_id).subscribe(
(data) => {
if (data['info'][0]['total'] == 1) {
this.noDataBool = false;
this.showSpinner = false;
this.family_name_en = data['info'][0]['hh_last_name_en'];
this.formGroup.controls['family_name_en'].setValue(this.family_name_en);
this.family_name_ar = data['info'][0]['hh_last_name_ar'];
this.formGroup.controls['family_name_ar'].setValue(this.family_name_ar);
this.unit_id = data['info'][0]['unit_id'];
this.formGroup.controls['unit_id '].setValue(this.unit_id);
}
}
Кнопка:
<button mat-raised-button color="warn" (click)="updateData()" [disabled]="!formGroup.valid">
<mat-icon>update</mat-icon>Update
</button>