如何将 mat-slide-toggle 与 FormControl 一起使用?

Ole*_*Ole 9 javascript typescript angular-material angular

这个答案中,它说我们应该能够做这样的事情:

<mat-slide-toggle [formControlName]="toggleControl">Slide</mat-slide-toggle>
Run Code Online (Sandbox Code Playgroud)

但是我在Stackblitz中尝试了这一点,它生成了错误:

src/app/app.component.html 中的错误 (1:19) 类型“FormControl”不可分配给类型“string |” 数字'。类型“FormControl”不可分配给类型“number”。

Iva*_*S95 9

这取决于您使用 FormControl 的方式,当您在 a 中使用它时,FormGroup您需要使用 来声明表单组内的表单控件formControlName,如下所示:

<form [formGroup]="myForm">
  <input type="text" formControlName="myInput">
</form>
Run Code Online (Sandbox Code Playgroud)

但如果你只需要一个或简单的,FormControl你可以像这样声明它:

<input [formControl]="myInput"/>
Run Code Online (Sandbox Code Playgroud)

这是你的情况,所以只需将你的指令更改[formControl][formControlName]

<mat-slide-toggle [formControl]="toggleControl">Slide</mat-slide-toggle>
Run Code Online (Sandbox Code Playgroud)