#4 Angular dependency injection framework. Иерархия инъекторов. Hierarchical injectors

แชร์
ฝัง
  • เผยแพร่เมื่อ 15 ต.ค. 2024
  • Hierarchical injectors в Ангулар имеет сложную запутанную систему provide зависимостей. В этом видео я сделал полный обзор этой темы. Полученные знания позволят строить гибкие архитектурные решения. Умение работать с DI открывает возможности по пониманию различных подходов в Angular
    Возможно видео не зайдет с первого раза, добавь в закладки чтобы вернуться к материалу после небольшого отдыха :)
    Презентация docs.google.co...

ความคิดเห็น • 32

  • @55BUMA
    @55BUMA ปีที่แล้ว +4

    Я безумно рада, что нашла Ваш канал. Это то, чего мне так не хватало! Спасибо за труд

  • @brucewayne_007
    @brucewayne_007 2 หลายเดือนก่อน +1

    После реакта сложно, но круто! Спасибо огромное за курсы!

  • @grommaks
    @grommaks  4 ปีที่แล้ว +4

    Приветствую друзья!
    Я не тратил времени на просьбу поставить лайк и подписаться, по этому оставлю это в комментариях 🐶
    Пишите, что еще хотели бы видеть у меня на канале?
    Хорошего настроения 😎😸✌️

  • @roma_fek
    @roma_fek ปีที่แล้ว +1

    крутые примеры, понятное объяснение, спасибо

  • @kseniaaslamova8994
    @kseniaaslamova8994 9 หลายเดือนก่อน +2

    Да, после опыта вся эта теория совсем по-другому укладывается внутри) Было бы здорово еще разбивку по минутам сделать.

  • @igorparampam5984
    @igorparampam5984 2 ปีที่แล้ว +2

    Спасибо, отличный материал.

  • @dmytrokilchytskyi5629
    @dmytrokilchytskyi5629 3 ปีที่แล้ว +1

    Хорошо что оставил ссылку на сайт с emoji :)
    🤯🤯🤯

  • @anygun4743
    @anygun4743 9 หลายเดือนก่อน +1

    Важное уточнение к ролику! на 4:10 минуте в emoji находится павлин, а не пеликан

  • @TheDaZorg
    @TheDaZorg 4 ปีที่แล้ว +3

    После того, как навешиваю директиву appMonkey на child компонент, у меня результат такой:
    Главный питомец - попугай
    Трудный питомец - попугай
    Любимый питомец - обезьяна
    Трудный питомец - обезьяна
    UPD:
    В видео ошибка на 19:00 - если добавить директиву на узел app-child, то результат будет как я писал выше, если же повесить директиву на узел app-grand-child, то как раз и будет
    Главный питомец - попугай
    Трудный питомец - обезьяна
    Любимый питомец - кенгуру
    Трудный питомец - кенгуру
    Т.к. директива использует хост инжектор, то как раз мы и увидим во второй строке обезьяну, при этом в последние 2 строки по прежнему будет провайдится вью инжектор со значением "кенгуру".
    PS2: Подозреваю, что ошибка из-за презентации, т.к. если бы писалось и объяснялось "на лету", то это было бы видно сразу, а по итогу перепутались слайды.

    • @АлександрМалагор
      @АлександрМалагор ปีที่แล้ว

      Не соглашусь. В видео показано поведение при viewProviders в app-child. Ваш кейс описывает ситуацию, когда в app-child используется массив providers.

  • @igor_p13
    @igor_p13 4 ปีที่แล้ว +3

    лайфхак для смайликов (emoji) в windows 10 можно использовать win+. (клавиша win одновременно с точкой), можно после этого продолжать печатать английские названия смайлов и они будут фильтроваться.
    это чтобы набирать смайлики. ✌ без всяких левых сайтов.

    • @grommaks
      @grommaks  4 ปีที่แล้ว +1

      Круто :) обязательно попробую. Если бы еще для убунту были такие штуки 😅

  • @regedam7559
    @regedam7559 ปีที่แล้ว +1

    В пути поиска элемента, Injector возвращается в первый эелемент для того, чтобы определить какому модулю пренадлежит компонент. После чего начинается поиск по модулям (от модуля компонента и до root модуля).

    • @grommaks
      @grommaks  ปีที่แล้ว

      Не совсем точно
      В пути сначала идет поиск по дереву компонентов, viewProviders -> providers до корневого компонента
      После этого в ближайший ленивый модуль, и так до корневого модуля
      Потом платформа и ошибка если не найдено
      Если ленивых модулей нет, то это одна конфигурация и поиск по модулям не происходит, а сразу происходит обращение к инжектору корневого модуля

    • @regedam7559
      @regedam7559 ปีที่แล้ว

      @@grommaks Спасибо, буду знать)

  • @RedkeiGost
    @RedkeiGost 2 ปีที่แล้ว +1

    Интересно, а можно было бы так переопределить компонент или директиву на свою кастомную. Типа подключили модуль МатериалДизинг компонентов, но в нем нам нужно поменять одну директиву. И мы конечно можем её отнаследовать и с другим селектором задекларировать и юзать такую. Но я говорю, было бы иногда удобно просто через родительский модуль подменить директиву в дочернем модуле. С сервисами мы так можем, почему с директивами-пайпами-компонентами не можем, это же плюс гибкость.

    • @grommaks
      @grommaks  2 ปีที่แล้ว

      В курсе по Пайпам ангулар я переопределяю пайпу даты и модифицирую ее
      Переопределять уже готовые директивы и компоненты можно, нужно указать такой же селектор и задекларировать в конце

    • @RedkeiGost
      @RedkeiGost 2 ปีที่แล้ว +1

      @@grommaks ок, спасибо. Но это больше похоже на хак и баг-юзание, чем на фичу. Завтра в коде ангулар проведут оптимизации и способ перестанет работать

  • @ОльгаЖурова-и5й
    @ОльгаЖурова-и5й 2 ปีที่แล้ว +2

    При изменении порядка директив на host ничего не изменилось, показывается тот декоратор, который объявлен последним в NgModule, а не тот который указан последним на host

    • @grommaks
      @grommaks  2 ปีที่แล้ว +1

      Да, при повторном тестировании обнаружил что я ошибся тут

    • @ОльгаЖурова-и5й
      @ОльгаЖурова-и5й 2 ปีที่แล้ว +1

      @@grommaks спасибо за ответ, боялась может я что-то не то сделала

    • @ОльгаЖурова-и5й
      @ОльгаЖурова-и5й 2 ปีที่แล้ว +1

      @@grommaks и спасибо за отличный материал и подачу

    • @grommaks
      @grommaks  2 ปีที่แล้ว

      @@ОльгаЖурова-и5й может с обновлением версии angular что-то изменилось, урок я снимал на 9 версии, а сейчас уже 14
      Но скорее всего ошибся :)

  • @АйратХайруллин-я9ы
    @АйратХайруллин-я9ы 4 ปีที่แล้ว +8

    Не пеликан а павлин)))

    • @grommaks
      @grommaks  4 ปีที่แล้ว

      Блииин 🙀 вот это я ошибся 😂

    • @ilnurryazhapov
      @ilnurryazhapov 3 ปีที่แล้ว

      я даже не заметил))

    • @sergeisychov9810
      @sergeisychov9810 ปีที่แล้ว

      Я тоже заметил этот баг, но не мог вспомнить название "павлин"))

  • @user-glory-of-ukraine
    @user-glory-of-ukraine 2 ปีที่แล้ว +1

    тяжело сображается

  • @boss-rus
    @boss-rus ปีที่แล้ว +1

    с очерёдностью не всё так однозначно...
    код:

    результат:
    Grand-child = 🐈
    Child = 🐈
    Grand-child = 🐈

    • @grommaks
      @grommaks  ปีที่แล้ว

      да, на этот подход не стоит рассчитывать при разработке...в новых версиях и с eslint у меня тоже не работает описанный в видео подход
      тут лучше сразу избегать неопреденностей такого рода, чтобы не получать баги

    • @yuryvakolov459
      @yuryvakolov459 ปีที่แล้ว

      Очередность зависит от очередности загрузки в модуле!

  • @grolcoon8798
    @grolcoon8798 2 ปีที่แล้ว +1

    23:23 Penguin [ˈpeŋɡwɪn]
    если кому интересно))