Угловое поле 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"
и все, поэтому он напрямую пишет о свойстве объекта, не уверен, что это лучший способ, но он работает