从 Angular 6 mat-selection-list 获取选定值的列表
Getting list of selected values from Angular 6 mat-selection-list
如何获取从 Angular material mat selection list in the component. The example given shows values to be displayed in the template but not in component. I am trying to modify the solution given in 中选择的所有值的列表,但它对我不起作用。这是我当前的代码:
模板:
<mat-selection-list #selected [(ngModel)]="readingTypesSelected" (ngModelChange)="onSelection($event)" >
<mat-list-option *ngFor="let readingType of readingTypes">
{{readingType.name}}
</mat-list-option>
</mat-selection-list>
组件:
onSelection(e, v) {
console.log(e);
console.log(v);
}
以下正在记录到控制台:
如何从中提取所选选项的实际值?
解决方法:
模板代码的前两行应该是(如 stackblitz link 在接受的解决方案中给出的):
<mat-selection-list #selected (selectionChange)="onSelection($event, selected.selectedOptions.selected)" >
<mat-list-option *ngFor="let readingType of readingTypes" [value] ="readingType">
我在这里更新了你的 stackblitz 代码 https://angular-selection.stackblitz.io
现在您可以在控制台中获取选定的值。
试试这个
<mat-selection-list #list [(ngModel)]="selectedOptions" (ngModelChange)="onNgModelChange($event)">
<mat-list-option *ngFor="let shoe of typesOfShoes" [value]="shoe">
{{shoe}}
</mat-list-option>
</mat-selection-list>
绑定 [(ngModel)]="selectedOptions"
后,您可以在组件中使用 selectedOptions
变量,其中包含所有选定的项目。
您的代码中缺少值属性
替换
和
然后在 readingTypesSelected 中获取选定的数组,
readingTypesSelected 在 [(ngModel)]="readingTypesSelected"
中提到
<mat-selection-list #products [(ngModel)]="selectedProducts">
<mat-list-option *ngFor="let eachProduct of allProducts;" [value]="eachProduct">
{{eachProduct.name}}
</mat-list-option>
</mat-selection-list>
{{selectedProducts|json}}
在 Angular 10 中测试。主要部分是 [value]="eachProduct"
否则它将显示 null
这个解决方案更好
selectionChanged(event: MatSelectionListChange): void {
this.selected = event.options.filter(o => o.selected).map(o => o.value);
}
如何获取从 Angular material mat selection list in the component. The example given shows values to be displayed in the template but not in component. I am trying to modify the solution given in
模板:
<mat-selection-list #selected [(ngModel)]="readingTypesSelected" (ngModelChange)="onSelection($event)" >
<mat-list-option *ngFor="let readingType of readingTypes">
{{readingType.name}}
</mat-list-option>
</mat-selection-list>
组件:
onSelection(e, v) {
console.log(e);
console.log(v);
}
以下正在记录到控制台:
如何从中提取所选选项的实际值?
解决方法:
模板代码的前两行应该是(如 stackblitz link 在接受的解决方案中给出的):
<mat-selection-list #selected (selectionChange)="onSelection($event, selected.selectedOptions.selected)" >
<mat-list-option *ngFor="let readingType of readingTypes" [value] ="readingType">
我在这里更新了你的 stackblitz 代码 https://angular-selection.stackblitz.io
现在您可以在控制台中获取选定的值。
试试这个
<mat-selection-list #list [(ngModel)]="selectedOptions" (ngModelChange)="onNgModelChange($event)">
<mat-list-option *ngFor="let shoe of typesOfShoes" [value]="shoe">
{{shoe}}
</mat-list-option>
</mat-selection-list>
绑定 [(ngModel)]="selectedOptions"
后,您可以在组件中使用 selectedOptions
变量,其中包含所有选定的项目。
您的代码中缺少值属性
替换
和
然后在 readingTypesSelected 中获取选定的数组,
readingTypesSelected 在 [(ngModel)]="readingTypesSelected"
中提到<mat-selection-list #products [(ngModel)]="selectedProducts">
<mat-list-option *ngFor="let eachProduct of allProducts;" [value]="eachProduct">
{{eachProduct.name}}
</mat-list-option>
</mat-selection-list>
{{selectedProducts|json}}
在 Angular 10 中测试。主要部分是 [value]="eachProduct"
否则它将显示 null
这个解决方案更好
selectionChanged(event: MatSelectionListChange): void {
this.selected = event.options.filter(o => o.selected).map(o => o.value);
}