Да
Что да? Вопрос прочти
чтоб карусель продолжала идти сначала когда шла в последний слайд
🧐 *ngIf="avatar" БЕЗ ? БЕЗ .img иначе у тебя ВСЕ значения будут ошибкой, ну Федя, ну заимей привычку хотя бы заглядывать в доку!!! Что делает ngIf? Он смотрит значение, и если оно ложно то не выводит НИЧЕГО. Когда оно ложно? когда у тебя нет ничего в avatar. И все. Что делает знак вопроса в твоей записи? Даю подсказку - превращает запись в тернарник)))
Не, ? - здесь это optional chaining
Поставь *ngIf на div.img в двух местах
здесь - это где? В выражении, которое по определению возвращает булево значение? А вы самому выражению сказали, что это знак опциональности? А то оно видит "значение1, знак вопроса, значение2" и читает как if(значение1) {значение2}
avatar?.img - вернет undefined
я выше написал почему
Ок, не optional chaining, а safe navigation operator. Но не тернарка. Тернарная операция это - условие ? да : нет
мы не о том спорим. *ngIf принимает в себя выражение, которое приводит к булевому значению. динамика у нас - переменная avatar. Все остальное внутри *ngIf это информационный шум в лучшем случае, источник ошибки во всех остальных вариантах
Ну ему надо проверить, что avatar = { img: 'img.jpg' }, а не avatar = { img: null }. Но если не уверены, что avatar не null и не undefined, то лучше писать *ngIf="avatar && avatar.img", что сокращенно *ngIf="avatar?.img".
если уж СОВСЕМ строго, то что за сущность avatar.img на входе? Откуда она берется? у нас есть на входе только avatar, который мы получаем через let-avatar="..." и никакого avatar.jpg мы не определяли. То есть это статический undefined
Ну входных он не показал, но там должен быть объект с полем img в котором ссылка
показывал в самом первом скрине если не ошибаюсь. Но и в этом случае обращаться надо к полю объекта без ? потому что если нет самого аватара - нет и поля, и мы в любом случае ничего не показываем. Если есть поле, то есть аватар и проверка на него не нужна. Так что или просто проверяем наличие avatar, или только поле avatar.img (если оно так обозвано). А если посмотреть повнимательнее на его код внутри и чего он хочет получить, то у нас два уровня проверки - сначала на наличие самого аватара, чтобы не ловить ошибки асинхронщины, а далее проверка *ngIf="avatar.img(ну или как там поле обозвано) else #tempalateWithoutAvatar" то есть два темплейта - с бекграундом если он есть и без оного если его нет. А эти пляски "я вгоню инструкцию стиля и возможным фолси значением и буду удивляться почему мне возвращается 404" - мы наблюдаем выше))))
Если разговор о том, что можно было не писать ?. то да, я тут согласен. В примере это лишнее
Обсуждают сегодня