我有一个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还是陌生的!
答案 0 :(得分:0)
现在我这样解决了它,从FormControl更改为:
[(ngModel)]="building.radius"
就是这样,所以它直接在对象的属性上写,不确定是否是最好的方法,但是它可以工作