Объект из 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', так и 'user'.
Фактическое поведение: Проверяется только «admin». Функция не выполняет проверку для пользователя.
Почему сравнивается только первое значение в моем массиве ролей? Кроме того, почему не проверяются и «admin», и «user», когда функция CompareWith всегда возвращает true? *