Объект из API:
roles = {
admin: false,
user: true,
}
Шаблон:
<mat-select formControlName="roles" required multiple [compareWith]="compareRoles">
<mat-option *ngFor="let role of roleList" [value]="role">{{role}}</mat-option>
</mat-select>
Составная часть:
this.roles = ['admin', 'user']
createForm(): FormGroup
{
return this._formBuilder.group({
roles : [[this.roles]],
})
}
функция сравнения с:
public compareRoles(c1: any, c2: any): boolean {
return true
}
Ожидаемое поведение, когда функция compareWith всегда возвращает значение true: должны быть отмечены как "администратор", так и "пользователь".
Фактическое поведение: отмечен только "admin". Функция не выполняет проверку для пользователя.
Почему сравнивается только первое значение в моем массиве ролей? Кроме того, почему не проверяются и «администратор», и «пользователь», когда функция compareWith всегда возвращает значение «истина»?