【发布时间】:2018-08-01 16:05:42
【问题描述】:
我有一个使用 mat-selection-list 制作的组件作为复选框列表。当我使用字符串数组时,效果很好。从那以后我不得不更新它以使用一个对象数组,这样我就可以将 ids 传回 api 而不是值。现在我的组件不会预先选择我传递给它的选项。
这是我的 slackblitz https://stackblitz.com/edit/angular-material2-issue-yghjci
组件 HTML
<mat-selection-list #optionList [(ngModel)]="selectedOptions" (ngModelChange)="onNgModelChange($event)">
<mat-list-option checkboxPosition="before" *ngFor="let optionItem of listOfOptions" [value]="optionItem">
{{optionItem.optionName | titlecase}}
</mat-list-option>
</mat-selection-list>
使用组件
<app-checkbox-list [listOfOptions]="myOptionList" [(selectedOptions)]="mySelectedOptions"></app-checkbox-list>
初始化数据
myOptionList:Array<ICheckBoxListOption>;
mySelectedOptions: Array<ICheckBoxListOption>;
listOfOptionsFromAPI: Array<ICheckBoxListOption> = [
{optionId: "001", optionName: "test1"},
{optionId: "002", optionName: "test2"},
{optionId: "003", optionName: "test3"},
{optionId: "004", optionName: "test4"},
{optionId: "005", optionName: "test5"},
];
preSelectedOptionsFromAPI: Array<ICheckBoxListOption> = [
{optionId: "003", optionName: "test3"},
{optionId: "005", optionName: "test5"},
];
ngOnInit(): void {
this.myOptionList = this.listOfOptionsFromAPI;
this.mySelectedOptions = this.preSelectedOptionsFromAPI;
}
【问题讨论】:
-
你应该在你的问题中提供一个最小的例子,而不仅仅是一个链接。