Я пытаюсь получить элемент из массива:
const device = this.selectedDevtype.devices.find(item =>
console.log(this.deviceID);
return item.device_id === this.deviceID;
});
console.log(device);
Журнал консоли записывает «4» для this.deviceID
и возвращает неопределенное значение device
.
Ошибка журнала
Но если я поставлю жестко закодированное значение, это сработает:
const device = this.selectedDevtype.devices.find(item =>
console.log(this.deviceID);
return item.device_id === 4;
});
console.log(device);
Журнал в порядке
Почему первая функция не работает? В чем ошибка? Спасибо.
Моя машинописная версия 2.6.2, я работаю над Angular 5.
По сути, я сравниваю строку и число. Сожаление, что я объявил тип в классе компонента:
deviceID: number;
радиогруппа углового материала меняла тип переменной на строку:
<mat-radio-group [(ngModel)]="deviceID" (change)="updateDevice()">
<mat-radio-button fxFlex="50"
*ngFor="let device of selectedDevtype.devices" value="{{ device.device_id }}">
[{{ device.key }}]{{ device.name }}
</mat-radio-button>
</mat-radio-group>
Может быть, это может кому-то помочь.