Угловое поле mat-form с выпуском FormControl и NgModel

У меня есть mat-form-field с полем ввода с type="number",

Я не уверен, что для моего случая я должен использовать FormControl или NgModel.

У меня есть дочерний компонент, который recieves Входной объект, и я должен сохранить то, что написано в поле ввода, на свойство этого объекта.

это мой дочерний контроллер:

@Input()
  building: Building;  

@ViewChild("numberMatInput", {read: MatInput})
  numberMatInput: MatInput;
  numberInput: FormControl = new FormControl();

ngOnInit() {
    this.numberInput.valueChanges
    .subscribe(s => {
      this.building.radius = s;
    });
}

и мой взгляд:

<mat-form-field appearance="outline">
     <mat-label>KM</mat-label>
     <input type="number" matInput #numberMatInput [formControl]="numberInput">
</mat-form-field>
<mat-icon matListIcon (click)="numberInput.setValue('')">close</mat-icon>

так что это работает, входное значение сохраняется в свойстве объекта -> this.building.radius но что не работает, это панель, которую можно открыть при выборе здания, и если я закрою панель и открою ее снова, поле ввода будет пустым вместо того, чтобы показывать последнее значение перед закрытием панели.

Должен ли я использовать NgModel? так что я могу использовать на NgModel непосредственно building.radius?

Извините, но я новичок в Angular!

1 ответ

На данный момент я решил это так, изменил с FormControl на:

[(ngModel)]="building.radius"

и все, поэтому он напрямую пишет о свойстве объекта, не уверен, что это лучший способ, но он работает

Другие вопросы по тегам