Итак, у меня есть две всплывающие формы редактирования. одна форма добавления, другая форма редактирования. Моя реализация фишек для значений «типы» работает в форме редактирования, но не работает в форме добавления. Я понятия не имею, почему, код выглядит так же, но он не работает. кто-нибудь может помочь?
add(event: MatChipInputEvent): void {
const input = event.input;
const value = event.value;
console.log(`mat chip`, event);
console.log(`mat chip value`, value);
// Add our fruit
if ((value || '').trim()) {
this.types.push(value.trim());
console.log(`types`, this.types);
this.truckDetailForm.patchValue({
type: this.types.join(',')
});
this.truckDetailForm.markAsDirty();
}
// Reset the input value
if (input) {
input.value = '';
}
}
remove(type: string): void {
const index = this.types.indexOf(type);
if (index >= 0) {
this.types.splice(index, 1);
this.truckDetailForm.patchValue({
type: this.types.join(',')
});
this.truckDetailForm.markAsDirty();
}
}
initAddForm(): FormGroup {
const _types = this.truck.type.split(',');
this.types = _types.filter(t => t !== '');
return this.formBuilder.group(
{
projectId: new FormControl(''),
truckSize: new FormControl('', [Validators.required]),
truckName: new FormControl('', [Validators.required]),
truckBuildUp: new FormControl('', [Validators.required]),
type: new FormControl(''),
shiftStart: new FormControl(''),
shiftEnd: new FormControl(''),
maxWeight: new FormControl('', [Validators.required]),
maxVolume: new FormControl('', [Validators.required]),
}
);
}
initEditForm(): FormGroup {
const _types = this.truck.type.split(',');
this.types = _types.filter(t => t !== '');
return this.formBuilder.group(
{
id: new FormControl(''),
projectId: new FormControl(''),
truckSize: new FormControl(this.truck.truckSize, [Validators.required]),
truckName: new FormControl(this.truck.truckName, [Validators.required]),
truckBuildUp: new FormControl(this.truck.truckBuildUp, [Validators.required]),
type: new FormControl(this.truck.type),
shiftStart: new FormControl(this.truck.shiftStart, [Validators.pattern('^([0-1][0-9]|[2][0-3]):([0-5][0-9])$')]),
shiftEnd: new FormControl(this.truck.shiftEnd, [Validators.pattern('^([0-1][0-9]|[2][0-3]):([0-5][0-9])$')]),
maxWeight: new FormControl(this.truck.maxWeight, [Validators.required]),
maxVolume: new FormControl(this.truck.maxVolume, [Validators.required]),
}
);
}
Я добавил изменения в AddForm & Editform, чтобы они были похожи, но форма добавления не работает, когда я набираю что-то для сохранения в виде чипа