Все сервисы Хабра

Сообщество IT-специалистов

Ответы на любые вопросы об IT

Профессиональное развитие в IT

Удаленная работа для IT-специалистов

Войти на сайт
  • Все вопросы
  • Все теги
  • Пользователи

Хабр Q&A — вопросы и ответы для IT-специалистов

Получайте ответы на вопросы по любой теме из области IT от специалистов в этой теме.

Узнать больше
другие проекты хабра
  • Хабр
  • Карьера
  • Фриланс
Задать вопрос
Ahmad66617

Виталий Кадыров

JavaScript Engineer
  • 6
    вклад
  • 0
    вопросов
  • 21
    ответ
  • 19%
    решений
Ответы
  • Информация
  • Ответы
  • Вопросы
  • Комментарии
  • Подписки
  • Нравится
  • Это нормальное поведение сайта?

    Ahmad66617
    Виталий Кадыров @Ahmad66617
    JavaScript Engineer
    Доброго времени суток! Однозначно ошибка разработки.
    Ответ написан 24 апр.
    Комментировать
    Комментировать
  • Как в Angular рендерить один компонент в другом по имени класса через сервис?

    Ahmad66617
    Виталий Кадыров @Ahmad66617
    JavaScript Engineer
    Доброго времени суток! Как один из вариантов создайте динамический компонент - тут можно посмотреть как завязать динамику и в принципе через инжект или токен определить компонент - чтобы Вы могли динамически создавать его
    https://habr.com/ru/company/skyeng/blog/652855/
    Ответ написан 24 апр.
    2 комментария
    2 комментария
  • При установке среды рoзрaботки для angular терминал выдает ошибку?

    Ahmad66617
    Виталий Кадыров @Ahmad66617
    JavaScript Engineer
    Доброго времени суток-))) У меня при установке тоже частенько стреляет Errror socket timeout - я ставлю пакеты дважды и с флагом --force. А когда мешает кэш старых пакетов - сделайте проще -> сначала npm cache clean --force и потом npm install --force поможет.
    Ответ написан 09 февр.
    Комментировать
    Комментировать
  • Как средствами css либо Angular убрать определённый атрибут элемента?

    Ahmad66617
    Виталий Кадыров @Ahmad66617
    JavaScript Engineer
    Доброго времени суток-))) Очень просто -> через декоратор ViewChild получаете доступ к элементу, например вот так "@ViewChild(li) li: ElementRef" в классе компонента и на своем элементе ставите атрибут "#li". После этого, например в хуке ngAfterViewInit убираете/заещаете/удаляете атрибут "this.li.nativeElement.removeAttribute('title')" - в случае изменения заменяете removeAttribute на setAttribute со значением
    6203c1dca2701356522840.png
    Ответ написан 09 февр.
    Комментировать
    Комментировать
  • Как в angular сделать анимацию при скролле до определённого элемента?

    Ahmad66617
    Виталий Кадыров @Ahmad66617
    JavaScript Engineer
    Очень просто - вот тут(https://angdev.ru/doc/angular-animation-part-1/) - т е вы пишите анимации со всеми мелочами и при инициализации страницы(компонента) ее включаете - она будет одноразовая, но если например через IntersectionObserver API или HostListener отследить скролл до верха страницы, то можно коллбеком запускать заново.
    Ответ написан 31 янв.
    Комментировать
    Комментировать
  • Как сделать так, чтобы перед запуском сайта - запускался специально сделанный экран загрузки?

    Ahmad66617
    Виталий Кадыров @Ahmad66617
    JavaScript Engineer
    Очень просто - в сети много прелоадеров. В скрипте отслеживайте событие DOMContentLoaded - и сделайте прелоадер видимым сначала по дэфолту, а когда коллбек после полной прогрузки страницы сработает -> прячьте его.
    Ответ написан 31 янв.
    Комментировать
    Комментировать
  • Что нужно сделать?

    Ahmad66617
    Виталий Кадыров @Ahmad66617
    JavaScript Engineer
    Скорее всего у вас на других страницах не инициализируется обработчик, вернее инициализируется когда страница еще не загружена или карточек на ней нет. Решение - положите скрипт в корневую старницу или дублируйте на всех где есть ваши карточки
    Ответ написан 31 янв.
    Комментировать
    Комментировать
  • В локальное хранилище записывается значение undefined. Как исправить?

    Ahmad66617
    Виталий Кадыров @Ahmad66617
    JavaScript Engineer
    Проставьте или добавьте в условие сравнение с undefined в кавычках.
    Ответ написан 31 янв.
    Комментировать
    Комментировать
  • Как проверить на валидность accessToken до перехода по роуту?

    Ahmad66617
    Виталий Кадыров @Ahmad66617
    JavaScript Engineer
    Возможно я не подскажу именно по Vue, но в ангуляре для этого есть resolver - возможно во Vue тоже есть, также если организован стейт менеджмент, например NgRx - то в стейтах тоже есть сайд эффект роутинга где собственно и можно отследить до, после и момент перехода и т д
    Ответ написан 31 янв.
    1 комментарий
    1 комментарий
  • Как извлечь значения отдельных полей массива/JSON?

    Ahmad66617
    Виталий Кадыров @Ahmad66617
    JavaScript Engineer
    Вы можете извлечь их и без перебора - по индексу - например -> request.response.daily[0].moonrise а если индексы будут приходить рандомно - то filter js вас спасет - и в фильтре условие, например наличие поля в объекте.
    Ответ написан 31 янв.
    Комментировать
    Комментировать
  • Ошибка типа Typescript, как исправить?

    Ahmad66617
    Виталий Кадыров @Ahmad66617
    JavaScript Engineer
    У вас в конце поста ответ - в таком случае сделайте поля необязательными, либо принимайте частично объект через Partial в вашем случае
    Ответ написан 31 янв.
    Комментировать
    Комментировать
  • Есть ли способ узнать, что с роута angular ушли?

    Ahmad66617
    Виталий Кадыров @Ahmad66617
    JavaScript Engineer
    Для этого у router есть Observable events - где есть например NavigationEnd -> подробнее в доках (https://angular.io/api/router/RouterEvent) - где можно подписаться и через RxJs операторы не только отследить, а скомбинировать любой кейс и собственно на него реагировать.
    Ответ написан 31 янв.
    Комментировать
    Комментировать
  • Почему не работает @Directive (именно класс с логикой) в angular?

    Ahmad66617
    Виталий Кадыров @Ahmad66617
    JavaScript Engineer
    Ответ может быть банален до безобразия - такая подсветка говорит скорее всего о том что в модуле вы не задекларировали и не заимпортили директиву
    Ответ написан 30 янв.
    Комментировать
    Комментировать
  • Как на Angular сделать отрисовку компонента при скролле?

    Ahmad66617
    Виталий Кадыров @Ahmad66617
    JavaScript Engineer
    Очень просто - отслеживайте скролл через HostListener или как я делал пагинацию со скроллом используйте IntersectionObserver API и при инициализации страницы через *ngIf не показывайте невидимую часть контента. При использовании IntersectionObserver выставьте в верстке прозрачные блоки по пикселю(это обязательно - с нулевой высотой не сработает) между вашими секциями на странице и точно также через *ngIf меняйте флаг при скролле на трушный. А чтобы при перезагрузке оставаться в том же месте в ангуляре надо заюзать хэша в урле и точно также по нимскроллить до того момента где юзер остановился. Тут я даже два способа написал на выбор - но в обоих без структурных директив не обойтись - разница в способах контроля скролла.
    Ответ написан 30 янв.
    Комментировать
    Комментировать
  • Не отрабатывает ngOnInit, хотя элемент отрисовался. В чём может быть дело?

    Ahmad66617
    Виталий Кадыров @Ahmad66617
    JavaScript Engineer
    Посмотрите документацию(https://angular.io/api/core/ChangeDetectorRef) - как работает стратегия обнаружения изменений --> метод detach, когда вручную контролируете обнаружение изменений не блокирует отрисовку(вы написали что контент отобразился) - а отключает обнаружение изменений(например если в компонент летят асинхронные данные - то они отрисованы не будут до команды detectChanges). Хук OnInit срабатывает единоразово только когда детектор изменений в первый раз проверил компонент на изменения - а вы их заблокировали вручную(https://angular.io/api/core/OnInit) - в доках все есть, внимательнее читайте!
    Ответ написан 30 янв.
    1 комментарий
    1 комментарий
  • Как использовать созданные Angluar компоненты в других созд. компонентах, НАРУШАЯ иерархию?

    Ahmad66617
    Виталий Кадыров @Ahmad66617
    JavaScript Engineer
    Возможно не совсем корректно задан вопрос насчет экспорта классов - но в таком кейсе я обычно использую общую папку common или shared и расшаренный модуль с компонентами которые будут заюзаны в других модулях и/или совместно, если подразумевается внутри компонента переиспользование какой то его части - то эту часть тоже вынести в отдельный компонент(например какой нибудь инпут или чекбокс) - и собирать конструктор как потребуется. В этом и есть преимущество ангуляра - модульность и инкапсуляция
    Ответ написан 09 янв.
    Комментировать
    Комментировать
  • Как в Angular проекте узнать у каких файлов нет тестов?

    Ahmad66617
    Виталий Кадыров @Ahmad66617
    JavaScript Engineer
    После выполнения команды ng test --watch=false --code-coverage , будет создана папка coverage - и можно размещение настроить в конфиге - и в этой папке будет билд проекта с индексным файлом - после перехода на него - вы увидите объем покрытия тестами вашего проекта
    Ответ написан 12 дек. 2021
    Комментировать
    Комментировать
  • Как в rxjs выполнить 2 запроса подряд и обработать результаты только первого?

    Ahmad66617
    Виталий Кадыров @Ahmad66617
    JavaScript Engineer
    Как правильно сказано было выше - насчет коллбэков например и вагона проверок на if-ах - посмотри в сторону exchaustMap - сам юзаю - в эффектах NgRx - когда нужно с бэка дождаться результата и потом что-то делать
    Ответ написан 01 нояб. 2021
    Комментировать
    Комментировать
  • Как вызвать функцию из одного компонента в другом?

    Ahmad66617
    Виталий Кадыров @Ahmad66617
    JavaScript Engineer
    Если использовать NgRx - то прям оч просто - диспатчишь ивент и собственно в эффект его ловишь, но до стейт менеджмента - я делал просто(если конечно не 100500 модалок там) - в Output через EventEmitter выдаешь флаг или объект, или тот же поток в RxJs - и на выходе его проверяешь - флаг сменился - вызвал один метод, если нет - то например другой, но лучше через стейты выводи - если прила обрастет модалками и прочими украшательствами - запутаешься быстро.
    Ответ написан 01 нояб. 2021
    Комментировать
    Комментировать
  • Как передать данные из компонента?

    Ahmad66617
    Виталий Кадыров @Ahmad66617
    JavaScript Engineer
    Можно проще - через декоратор Output - только не для каждого поля отдельный Output, а передай например в него объект через EventEmitter со списком полей - а на выходе считывай свойства
    Ответ написан 01 нояб. 2021
    Комментировать
    Комментировать
Оценили как «Нравится»
  • 1
  • 2
  • Следующие →
Самые активные сегодня
  • rPman
    • 9 ответов
    • 0 вопросов
  • Drno
    • 7 ответов
    • 0 вопросов
  • низкомолекулярный макрос
    • 6 ответов
    • 1 вопрос
  • 0xD34F
    0xD34F
    • 6 ответов
    • 0 вопросов
  • ALonUa
    • 6 ответов
    • 0 вопросов
  • sergey-kuznetsov
    Сергей Кузнецов
    • 5 ответов
    • 0 вопросов
  • © Habr
  • О сервисе
  • Обратная связь
  • Блог

Войдите на сайт

Чтобы задать вопрос и получить на него квалифицированный ответ.
Войти через центр авторизации