У меня есть приложение Angular 14, которое отлично работает в режиме разработки. Все идет хорошо во время сборки до производства. И когда я захожу на свою страницу в продакшене, у меня в консоли такая ошибка:
Cannot read properties of undefined (reading 'absiccValues')
В следующем примере я использую собственный канал под названием «bafBackgroundColor», и в аргументах этого канала появляется ошибка (строка 3).
<ng-container *ngFor = "let item of col.field; let i = index">
<input type = "number" step = "any" [(ngModel)] = "piece[item.field_name]"
[style.backgroundColor] = "piece[item.field_name] | bafBackgroundColor:item.field_name:scp_list[i]['absiccValues']">
{{scp_list[i]['absiccValues'].max}}
{{i}}
</ng-container>
Ошибка говорит мне, что она не может найти «abcissValues» в индексе «i» моего массива scp_list, но когда я отображаю это же значение вне ввода, с «{{scp_list[i] ['absiccValues'].max}} " (строка 4 примера выше), работает





Недостаточно кода, чтобы быть конкретным, поэтому просто сделайте это
bafBackgroundColor:item.field_name:scp_list[i]?.absiccValues"
Вероятно, это связано с тем, что ваши данные не загружаются вовремя или с какой-то проблемой силимара. Ваш API в локальном режиме работает быстрее, чем в режиме prod, поэтому вы не видите проблемы, но она есть.
Вы также можете защитить свой тег с помощью заявления *ngIf, чтобы избежать этого, если хотите.
Это работает отлично, спасибо. Я думаю, как вы сказали, в производстве данные загружаются недостаточно быстро, в отличие от режима разработки, поэтому мой массив scp_list потенциально пуст при отображении страницы, и поэтому это вызывает ошибку с индексом, потому что внутри массива нет элемента . Большое спасибо !