如何使用 mat-select (multiselect) Angular Material 设置选项 true/false
How to set an option true/false with mat-select (multiselect) Angular Material
我使用了 Angular Material 中的多项选择。
<mat-form-field>
<mat-select placeholder="Toppings" [formControl]="toppings" multiple>
<mat-option *ngFor="let topping of toppingList" [value]="topping">{{topping}}</mat-option>
</mat-select>
</mat-form-field>
我想根据需要将一些选项设置为 true 或 false,但我不知道如何操作。
之前
之后
这是默认表单值的简单问题。初始化您的 FormGroup 时,只需传入您希望显示为 "checked" 的值,确保与这些值完全匹配。
工作 stackblitz --> https://angular-r2y6gk.stackblitz.io
由于响应来自 API,您将异步接收响应。
在这种情况下,您可以在 FormControl
实例或 FormGroup
实例上调用 setValue
方法以设置默认值。
像这样:
import { Component } from '@angular/core';
import { FormControl } from '@angular/forms';
import { DataService } from './data.service';
@Component({
selector: 'select-multiple-example',
templateUrl: 'select-multiple-example.html',
styleUrls: ['select-multiple-example.css'],
})
export class SelectMultipleExample {
toppingList: string[] = [
'Extra cheese',
'Mushroom',
'Onion',
'Pepperoni',
'Sausage',
'Tomato'
];
selectedByDefault;
toppings: FormControl;
constructor(private dataService: DataService) {}
ngOnInit() {
this.toppings = new FormControl(this.selectedByDefault);
this.dataService.selectedValues$
.subscribe(values => this.toppings.setValue(values));
}
}
Here's a Working Sample StackBlitz for your ref.
我使用了 Angular Material 中的多项选择。
<mat-form-field>
<mat-select placeholder="Toppings" [formControl]="toppings" multiple>
<mat-option *ngFor="let topping of toppingList" [value]="topping">{{topping}}</mat-option>
</mat-select>
</mat-form-field>
我想根据需要将一些选项设置为 true 或 false,但我不知道如何操作。
之前
这是默认表单值的简单问题。初始化您的 FormGroup 时,只需传入您希望显示为 "checked" 的值,确保与这些值完全匹配。
工作 stackblitz --> https://angular-r2y6gk.stackblitz.io
由于响应来自 API,您将异步接收响应。
在这种情况下,您可以在 FormControl
实例或 FormGroup
实例上调用 setValue
方法以设置默认值。
像这样:
import { Component } from '@angular/core';
import { FormControl } from '@angular/forms';
import { DataService } from './data.service';
@Component({
selector: 'select-multiple-example',
templateUrl: 'select-multiple-example.html',
styleUrls: ['select-multiple-example.css'],
})
export class SelectMultipleExample {
toppingList: string[] = [
'Extra cheese',
'Mushroom',
'Onion',
'Pepperoni',
'Sausage',
'Tomato'
];
selectedByDefault;
toppings: FormControl;
constructor(private dataService: DataService) {}
ngOnInit() {
this.toppings = new FormControl(this.selectedByDefault);
this.dataService.selectedValues$
.subscribe(values => this.toppings.setValue(values));
}
}
Here's a Working Sample StackBlitz for your ref.