169 похожих чатов

20 ответов

12 просмотров

Да

Andrew-Sverdlov Автор вопроса
Igor Федор
Да

Что да? Вопрос прочти

Andrew-Sverdlov Автор вопроса
Igor Федор
screenshot

Почему дублируется?

Andrew Sverdlov
screenshot Почему дублируется?

чтоб карусель продолжала идти сначала когда шла в последний слайд

Igor Федор
screenshot

🧐 *ngIf="avatar" БЕЗ ? БЕЗ .img иначе у тебя ВСЕ значения будут ошибкой, ну Федя, ну заимей привычку хотя бы заглядывать в доку!!! Что делает ngIf? Он смотрит значение, и если оно ложно то не выводит НИЧЕГО. Когда оно ложно? когда у тебя нет ничего в avatar. И все. Что делает знак вопроса в твоей записи? Даю подсказку - превращает запись в тернарник)))

Andrew-Sverdlov Автор вопроса
Andrew-Sverdlov Автор вопроса
Andrew Sverdlov
screenshot Почему дублируется?

Поставь *ngIf на div.img в двух местах

Andrew Sverdlov
Не, ? - здесь это optional chaining

здесь - это где? В выражении, которое по определению возвращает булево значение? А вы самому выражению сказали, что это знак опциональности? А то оно видит "значение1, знак вопроса, значение2" и читает как if(значение1) {значение2}

Andrew Sverdlov
avatar?.img - вернет undefined

я выше написал почему

Andrew-Sverdlov Автор вопроса
Владимир
я выше написал почему

Ок, не optional chaining, а safe navigation operator. Но не тернарка. Тернарная операция это - условие ? да : нет

Andrew Sverdlov
Ок, не optional chaining, а safe navigation operat...

мы не о том спорим. *ngIf принимает в себя выражение, которое приводит к булевому значению. динамика у нас - переменная avatar. Все остальное внутри *ngIf это информационный шум в лучшем случае, источник ошибки во всех остальных вариантах

Andrew-Sverdlov Автор вопроса
Владимир
мы не о том спорим. *ngIf принимает в себя выражен...

Ну ему надо проверить, что avatar = { img: 'img.jpg' }, а не avatar = { img: null }. Но если не уверены, что avatar не null и не undefined, то лучше писать *ngIf="avatar && avatar.img", что сокращенно *ngIf="avatar?.img".

Andrew Sverdlov
Ну ему надо проверить, что avatar = { img: 'img.jp...

если уж СОВСЕМ строго, то что за сущность avatar.img на входе? Откуда она берется? у нас есть на входе только avatar, который мы получаем через let-avatar="..." и никакого avatar.jpg мы не определяли. То есть это статический undefined

Andrew-Sverdlov Автор вопроса
Владимир
если уж СОВСЕМ строго, то что за сущность avatar.i...

Ну входных он не показал, но там должен быть объект с полем img в котором ссылка

Andrew Sverdlov
Ну входных он не показал, но там должен быть объек...

показывал в самом первом скрине если не ошибаюсь. Но и в этом случае обращаться надо к полю объекта без ? потому что если нет самого аватара - нет и поля, и мы в любом случае ничего не показываем. Если есть поле, то есть аватар и проверка на него не нужна. Так что или просто проверяем наличие avatar, или только поле avatar.img (если оно так обозвано). А если посмотреть повнимательнее на его код внутри и чего он хочет получить, то у нас два уровня проверки - сначала на наличие самого аватара, чтобы не ловить ошибки асинхронщины, а далее проверка *ngIf="avatar.img(ну или как там поле обозвано) else #tempalateWithoutAvatar" то есть два темплейта - с бекграундом если он есть и без оного если его нет. А эти пляски "я вгоню инструкцию стиля и возможным фолси значением и буду удивляться почему мне возвращается 404" - мы наблюдаем выше))))

Andrew-Sverdlov Автор вопроса
Владимир
показывал в самом первом скрине если не ошибаюсь. ...

Если разговор о том, что можно было не писать ?. то да, я тут согласен. В примере это лишнее

Похожие вопросы

Обсуждают сегодня

30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
6
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Всем привет! Имеется функция: function IsValidChar(ch: UTF8Char): Boolean; var i: Integer; ValidChars: AnsiString; begin ValidChars := 'abcdefghijklmnopqrstuvwxyzABCDE...
Евгений
44
Карта сайта