要将mat-slide-toggle的条件验证更改为只能从对象数组中选择一个选项,可以使用FormGroup和FormControl来实现。
首先,创建一个FormGroup对象来管理表单中的控件。在组件的构造函数中,初始化FormGroup对象并添加一个FormControl来表示选择的选项。假设我们有一个对象数组options,其中包含可选的选项。
import { Component } from '@angular/core';
import { FormGroup, FormControl } from '@angular/forms';
@Component({
selector: 'app-my-form',
templateUrl: './my-form.component.html',
styleUrls: ['./my-form.component.css']
})
export class MyFormComponent {
options = [
{ id: 1, name: 'Option 1' },
{ id: 2, name: 'Option 2' },
{ id: 3, name: 'Option 3' }
];
myForm: FormGroup;
constructor() {
this.myForm = new FormGroup({
selectedOption: new FormControl()
});
}
}
接下来,在HTML模板中使用mat-slide-toggle来显示可选的选项,并绑定到FormGroup中的FormControl。通过ngFor指令,循环遍历options数组,并为每个选项创建一个mat-slide-toggle。
在这个示例中,我们使用了checked属性来设置mat-slide-toggle是否选中,通过将选项的id与FormControl的值进行比较。当用户点击mat-slide-toggle时,我们使用change事件将选项的值设置为FormControl的值。
最后,确保在模块中导入FormsModule和ReactiveFormsModule。
import { FormsModule, ReactiveFormsModule } from '@angular/forms';
@NgModule({
imports: [
// ...
FormsModule,
ReactiveFormsModule
],
// ...
})
export class AppModule { }
这样,用户只能从对象数组中选择一个选项,并且通过验证。