Це відео не доступне.
Перепрошуємо.

Build Angular Modal Without Libs - Angular Dynamic Component

Поділитися
Вставка
  • Опубліковано 26 лип 2024
  • Learn how to create Angular modal without any libraries. As we want to render our modal in body we must learn how to create Angular dynamic component on the fly.
    TIMESTAMPS
    0:00 Introduction
    1:02 Initial project
    1:49 Angular modal architecture
    2:11 Angular dynamic component
    4:46 Modal service
    9:28 Outputs for modal
    ► CHECK MY COURSES - monsterlessons-academy.com/co...
    MOST POPULAR COURSES
    ► Building real project with Angular + NgRx - monsterlessons-academy.com/co...
    ► Building real NestJS API - monsterlessons-academy.com/co...
    ► Javascript interview questions - monsterlessons-academy.com/co...
    ► Building real fullstack project - monsterlessons-academy.com/co...
    ► Mastering Git - monsterlessons-academy.com/co...
    ► Mastering Docker and Docker Compose - monsterlessons-academy.com/co...
    ► Building real project with React Hooks - monsterlessons-academy.com/co...
    ► Building real project with Vue + Vuex - monsterlessons-academy.com/co...
    FOLLOW ME
    ► TWITTER - / monster_lessons
    ► INSTAGRAM - / monsterlessonsacademy
    ► TIKTOK - / monsterlessonsacademy
    REFERENCES
    ► Source code - github.com/monsterlessonsacad...

КОМЕНТАРІ • 71

  • @eduardodavila5213
    @eduardodavila5213 28 днів тому +1

    Monsterlessons rocks!! 💪

  • @ytamb01
    @ytamb01 Рік тому +4

    Great tutorial. This highlights the things you need to consider if you write a custom modal. It also helps you understand the implementation in libraries like ng-bootstrap. Thanks.

  • @MolotovClipes
    @MolotovClipes 10 місяців тому +1

    Wowww, insane tutorial! Thanks a lot.

  • @johnhashim2854
    @johnhashim2854 Рік тому

    Great Content, Thanks

  • @christcp9014
    @christcp9014 9 місяців тому +2

    MonsterLessons👍

  • @AfolabiJude
    @AfolabiJude Рік тому +2

    This video is highly recommended

  • @rahultej8352
    @rahultej8352 9 місяців тому

    Thank you, great work. Why dint you cinsider to detach the modal component when closed

  • @shieth314
    @shieth314 3 місяці тому +1

    Incredible video! I always benefit from your videos, particularly at work. Thank you very much for your hard work! I would like to suggest utilizing diagrams to explain the outline of the process for those whom rely on aids for visualization, such as myself.

  • @EduardoMartinez-dm5pp
    @EduardoMartinez-dm5pp 8 місяців тому

    You've been saving my ass for the past 6 months at my job hahahaha thank you so much dear friend!

  • @Yarinmimon
    @Yarinmimon Рік тому +4

    Man,i consider myself a very productive angular developer since im very experienced, but you are literally fluent.
    Very nice deep comprehension of this amazing fw, btw are you freelance?

  • @oladipogeorge5282
    @oladipogeorge5282 Рік тому +3

    Hello. Me again. How do you send dynamic data through the modal? Hardcoded content shows:
    TEST
    But if I try and send dynamic data from the component, it doesn't show:
    {{ heading }}
    Would really appreciate your help.

  • @ARShindouAR
    @ARShindouAR 5 місяців тому

    Deep understanding of Angular

    • @MonsterlessonsAcademy
      @MonsterlessonsAcademy  5 місяців тому

      Thank you!

    • @ARShindouAR
      @ARShindouAR 5 місяців тому

      @@MonsterlessonsAcademy Btw, is this way like to create a common modal service? Like dialog component in Angular Material? We can define our own dialog UI. and invoke this service to create Modal component?

  • @anirbandas12
    @anirbandas12 11 місяців тому

    seems formcontrol bindings and dynamic data in the ng template that is to be put in the body is not working

  • @anthroponymy
    @anthroponymy Рік тому

    Hi you are doing awesome. can you please let us know what VIM based editor are you using. and please post a full PROD ready ANGULAR Application with DB connection with authentication and authorization ?

    • @MonsterlessonsAcademy
      @MonsterlessonsAcademy  Рік тому

      Hi, here is my video about Vim ua-cam.com/video/YrLiugDhCuk/v-deo.html. The config is in the description.
      I already have a course with Socket IO, Angular, Typescript, NodeJS, Express, Mongodb and Deployment
      monsterlessons-academy.com/courses/build-fullstack-trello-clone-websocket-socket-io

  • @tmsmiffs
    @tmsmiffs 11 місяців тому

    Very nice! If your modal content is a form, how would you generically handle the submit with the modal's confirm button?

  • @kol4an721
    @kol4an721 Рік тому

    Great video.
    A have one question. How I can customise these modal?
    A want to open these modal, but I don’t want to use static component.
    Me need the hand over any component to openModal method and open the modal using component which I hand over in those method. How I can doing this? Thanks for answer

  • @claudiotorres9138
    @claudiotorres9138 11 місяців тому

    another question, it is necessary that the openModal method is in the appComponent file? Could it be in the component file of the template which opens the modal?

  • @donachou2011
    @donachou2011 Місяць тому

    hello great video please i would like to know how to implement this modal open with componentRef instead of templateRef

  • @user-td8eh3fu5w
    @user-td8eh3fu5w Рік тому

    1st!

  • @karthikeyan878
    @karthikeyan878 Рік тому +1

    Please make a video on Angular "module" vs "library".

  • @MolotovClipes
    @MolotovClipes 10 місяців тому

    In open(content: TemplateRef) if i need pass a component, how i get rootNodes to this case ?

    • @MonsterlessonsAcademy
      @MonsterlessonsAcademy  10 місяців тому

      If you want to pass a comp inside you need to tune it for your needs. You can find some examples in internet.

    • @MolotovClipes
      @MolotovClipes 10 місяців тому

      @@MonsterlessonsAcademy thanks, i got

  • @claudiotorres9138
    @claudiotorres9138 11 місяців тому +1

    it shows ComponentFactoryResolver as deprecated in import, can you tell me how to use it the actual way please?

    • @MonsterlessonsAcademy
      @MonsterlessonsAcademy  11 місяців тому

      I didn't try the newer variant but it looks like this is the correct usage
      const component = this.viewContainerRef.createComponent(YourElement);

    • @sergeydiachenko1429
      @sergeydiachenko1429 10 місяців тому +1

      ​@@MonsterlessonsAcademyBut, you can't use viewContainerRef inside a service class

  • @imarveldesignsolutions9428
    @imarveldesignsolutions9428 Рік тому

    Can you have a custom component inside an ng-template?
    For example:
    ,
    I have followed this video and everything works great, but when i add a custom component it doesn't show, but it does if i use normal html.

    • @MonsterlessonsAcademy
      @MonsterlessonsAcademy  Рік тому

      Works for me
      This is our custom modal content

    • @imarveldesignsolutions9428
      @imarveldesignsolutions9428 Рік тому +1

      @@MonsterlessonsAcademy Thanks for getting back to me. I created an Input component, and added it to the ng-template of that modal, but it doesn't seem to be working.

    • @imarveldesignsolutions9428
      @imarveldesignsolutions9428 Рік тому

      @@MonsterlessonsAcademy Hi. I have just done a Foo component and that is working, but just doesn't seem to be working with my custom Input component:
      I can see that there is a label and input tag in the console, but nothing is being sent over.

    • @_Greenflag_
      @_Greenflag_ Рік тому

      @@imarveldesignsolutions9428 @MonsterlessonsAcademy ahah, I think I found the bug. You should not pass 'null' to the createEmbeddedView, because the content will not be projected correctly. Use a modern approach with a ViewContainerRef and project vcr.createEmbeddedView(content);. If you use null and project a mat-icon in your ng-template (or any other 'dependancies' it will not work)

    • @pietrocurcio964
      @pietrocurcio964 2 місяці тому

      @@imarveldesignsolutions9428 Hi! Did you manage to solve this porblem? I need help passing custom components to it

  • @skidrow7930
    @skidrow7930 Рік тому

    как закрывать модалку с помощью кнопки которая находится в ngcontent?

  • @howdy_suraj
    @howdy_suraj 10 місяців тому +1

    How can we implement it without using deprecated stuff

    • @MonsterlessonsAcademy
      @MonsterlessonsAcademy  10 місяців тому +1

      You can check documentation and update your code accordingly. Videos content gets outdated with time.

  • @testblh
    @testblh Рік тому

    2nd!!😉

  • @claudiotorres9138
    @claudiotorres9138 11 місяців тому

    where do we define what goes inside ng-content?

  • @neon_342
    @neon_342 Рік тому

    #monsterlessons component factory resolver is deprecated, can you suggest method which works i mean a quickfix please asap

    • @MonsterlessonsAcademy
      @MonsterlessonsAcademy  Рік тому

      Note: since v13, dynamic component creation via ViewContainerRef.createComponent does not require resolving component factory: component class can be used directly.
      angular.io/api/core/ComponentFactoryResolver

    • @neon_342
      @neon_342 Рік тому

      #monsterlessons am struggling to fix it in your project. Can you help me out to implement it there only ?

    • @_Greenflag_
      @_Greenflag_ Рік тому +2

      The place where you call it :
      @ViewChild('view', { static: true, read: ViewContainerRef })
      vcr!: ViewContainerRef;
      openModal(modalTemplate: TemplateRef) {
      this.modalService.open(this.vcr, modalTemplate, {
      title: 'Editer',
      });
      }
      The Service :
      export class ModalService {
      constructor(private injector: Injector, private cdr: ApplicationRef) {}
      open(
      vcr: ViewContainerRef,
      content: TemplateRef,
      options?: { title?: string }
      ) {
      vcr.clear();
      const innerContent = content.createEmbeddedView(null);
      const newComponentRef = vcr.createComponent(ModalComponent, {
      injector: this.injector,
      projectableNodes: [innerContent.rootNodes],
      });
      newComponentRef.instance.title = options?.title;
      this.cdr.tick();
      }
      }

  • @sameerdas3672
    @sameerdas3672 Рік тому +1

    But componentFactoryResolver is deprecated. How can we achieve the same without it?

    • @MonsterlessonsAcademy
      @MonsterlessonsAcademy  Рік тому +1

      Note: since v13, dynamic component creation via ViewContainerRef.createComponent does not require resolving component factory: component class can be used directly.
      angular.io/api/core/ComponentFactoryResolver

    • @sergeydiachenko1429
      @sergeydiachenko1429 9 місяців тому +1

      @@MonsterlessonsAcademy you can't use ViewContainerRef inside Service class. How to make this logic using the service?

  • @RazDva-lg4is
    @RazDva-lg4is Рік тому

    ComponentFactoryResolver and other staff are already deprecated

  • @kflo411
    @kflo411 Рік тому

    Moh-dal. Like total.

  • @himanshubansal6425
    @himanshubansal6425 Рік тому

    You do not unsubscribe events

    • @MonsterlessonsAcademy
      @MonsterlessonsAcademy  Рік тому +1

      You don't need to unsubscribe from outputs as they are not a custom subscribe.

  • @sergeydiachenko1429
    @sergeydiachenko1429 10 місяців тому

    WTF? ComponentFactoryResolver is deprecated

    • @MonsterlessonsAcademy
      @MonsterlessonsAcademy  10 місяців тому

      You can check documentation and update your code accordingly. Videos content gets outdated with time.

    • @sergeydiachenko1429
      @sergeydiachenko1429 9 місяців тому

      @@MonsterlessonsAcademy this means that your video is already outdated.