带有FormControl和NgModel问题的角度垫形字段

时间:2018-08-30 12:50:57

标签: angular angular-ngmodel form-control

我有一个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 个答案:

答案 0 :(得分:0)

现在我这样解决了它,从FormControl更改为:

[(ngModel)]="building.radius"

就是这样,所以它直接在对象的属性上写,不确定是否是最好的方法,但是它可以工作