Тёмный

NgTemplateOutlet in Angular - Everything You Have to Know (2022) 

Decoded Frontend
Подписаться 52 тыс.
Просмотров 51 тыс.
50% 1

Опубликовано:

 

30 сен 2024

Поделиться:

Ссылка:

Скачать:

Готовим ссылку...

Добавить в:

Мой плейлист
Посмотреть позже
Комментарии : 173   
@DecodedFrontend
@DecodedFrontend Год назад
💥 Learn Angular Forms in-depth and start building complex form controls with ease💥 🔗 10% discount for the first 10 students - bit.ly/advanced-ng-forms-discounted 💡 Short Frontend Snacks (Tips) every week here: Twitter - twitter.com/DecodedFrontend Instagram - instagram.com/decodedfrontend LinkedIn - www.linkedin.com/in/dmezhenskyi
@ibrahimbhabay37
@ibrahimbhabay37 Год назад
please create a video on content projection.
@DecodedFrontend
@DecodedFrontend Год назад
Okay :)
@davidwang5445
@davidwang5445 Год назад
Another excellent video. Well structured, clearly expained. Three parts with small changes enhanced the concepts. Recap helps the viewers remember what has learned. Thank you so much and happy holidays!
@DecodedFrontend
@DecodedFrontend Год назад
Thank you, I am glad that you liked the video. Have a great holidays as well :)
@djedaaa2232
@djedaaa2232 Год назад
I just want to say, i’m crazy about your courses and tutorials. You really have a gift for teaching, you dive deep into subject and talk about complex things which others often avoid do to the complexity. This channel (and also your paid courses) are such a refresher for Angular community.. Keep up the great work!
@santicanabalramos667
@santicanabalramos667 Год назад
Really interesting video! I would like to have a video related to content projection as well :)
@DecodedFrontend
@DecodedFrontend Год назад
I will be glad to make it ;)
@HackHeyner
@HackHeyner Год назад
Does not exist in the world, enough recognition for this guy! Absolute unit of a teacher!
@advaithsurya4039
@advaithsurya4039 Год назад
I absolutely love angular and [ngTemplateOutlet] is one of my favourite topics because they allow my template to be extremely reusable. It is indeed very powerful in terms of functionality.
@DecodedFrontend
@DecodedFrontend Год назад
completely agree!
@geekybruce4819
@geekybruce4819 5 месяцев назад
why not just give provide state & action at root or app.component level & inject both at other places where we want to use state & action since that will be one single instance available at all place? also is inject one component in other component good pratice ? cuz generally it is service that we inject
@MrVinodkumar92
@MrVinodkumar92 Год назад
Can you pls explain content projection 1. With slots 2. With styling - do we need to add the styles in the projected component or in the component where the content is passed ? When viewencapsularion is emulated the ngcontent and nghost classes in Dom seems different Pls explain them as well. Thanks
@DecodedFrontend
@DecodedFrontend Год назад
Thank you for suggestion :) I will definitely cover those things
@KvN-UA
@KvN-UA Год назад
Thanks a lot for the explanation. It's amazing! I would like to know more about content projection.
@Emekaelo
@Emekaelo Год назад
How can the solution that the ngTemplateOutletInjector brings be done in Angular versions lower than 14?
@DecodedFrontend
@DecodedFrontend Год назад
You can provide injector (or particular service you need) of WeatherComponent via template context and then from the context provide to the target component as an input and fetch dependencies from there. Maybe there are another workarounds but I heard only about this one.
@mario_2211
@mario_2211 Год назад
Great work I'd love to see a video on content projection
@sergiocebrian85
@sergiocebrian85 Год назад
Great job Dmytro! NgTemplateOutlet is a powerful directive that everyone should use often
@madeOfClay99
@madeOfClay99 Год назад
Somehow I got distracted by your cat : ) Excellent video Dmytro
@DecodedFrontend
@DecodedFrontend Год назад
😁
@innocentmazando3808
@innocentmazando3808 Год назад
Insightful lesson, I have a use case for it. Got a reusable table I need to wire next year and this may be the solution I am gonna run with
@DecodedFrontend
@DecodedFrontend Год назад
Yep, reusable table is a perfect use case and I think ngTemplateOutlet will perfectly work for you.
@ievgensvichkar2643
@ievgensvichkar2643 Год назад
One more useful video, thanks a lot. Small remark: content projection can also be used in combination with ng-template approach when we use content projection to provide the template to be instantiated inside the recipient component (instead of using @Input for this).
@femelene2455
@femelene2455 Год назад
That is exactly what I was thinking about at the end of the video. I think that Dmytro wanted to show us new Angular feature instead - ngTemplateOutlerInjector which is also very cool by the way :)
@DecodedFrontend
@DecodedFrontend 5 месяцев назад
Hey guys :) Yes, you are right (you both :) ). Actually, many things could be accomplished in many different ways, and "the best" solution is usually very dependent on the particular details and your goals. The solution in the video was chosen just for the demonstration of the ngTemplateOutlerInjector feature staying in the same and familiar context of the WeatherComponent component.
@claudiuciprianbetiuc3985
@claudiuciprianbetiuc3985 Год назад
Great video! I would also be interested in a video about content projection and when to use content projection / ngTemplateOutlet
@davidontiveros2895
@davidontiveros2895 Год назад
Content projection 🙏🏻
@Shortly8908
@Shortly8908 Год назад
This is so good men. Thank you very much! EDIT: Question, is there a way to pass function that has that interact with the components variables in [ngTemplateOutletContext]? I'm getting "this" is undefined.
@gagiksimonyan3782
@gagiksimonyan3782 Год назад
Happy New Year, Dmytro) Wish you all the best:)
@DecodedFrontend
@DecodedFrontend Год назад
Thank you, Gagik! Happy New Year!
@valikonen
@valikonen Год назад
You set your cover picture exactly like a country man from east...
@DecodedFrontend
@DecodedFrontend Год назад
You can move out of an eastern village but the village will never move out of you.
@ranaivosonherimanitra5110
@ranaivosonherimanitra5110 Год назад
What's the purpose of exclamation point (!) Here?
@DecodedFrontend
@DecodedFrontend Год назад
Thanks for your question :) It tells TypeScript that the property won't have an initial value and and will be setup later in runtime.
@VinitNeogi
@VinitNeogi Год назад
It is the non-null assertion operator to tell the compiler this variable is not null or undefined.
@xingfucoder2627
@xingfucoder2627 Год назад
Great video Dmytro. Would be great to have a course like the forms one, but for those Angular core middle or advanced topics.
@DecodedFrontend
@DecodedFrontend Год назад
This is very interesting. I plan 2 new courses in the next year. Let's see what i come up with ;)
@xingfucoder2627
@xingfucoder2627 Год назад
@@DecodedFrontend Great Dmytro. Many thanks for your quick reply.
@samuelalejandro2104
@samuelalejandro2104 Год назад
I don't speak English (I'm Brazilian), but your explanation is so clear and concise that even if I don't know much English I can understand 98% of what you say. By the way, I love your content.
@ЮліяКоцегуб
@ЮліяКоцегуб Месяц назад
Дякую, зрозуміле пояснення теми 👍
@DecodedFrontend
@DecodedFrontend Месяц назад
Дуже дякую за фідбек 😊
@uidhtml
@uidhtml 3 месяца назад
U r awesome Dmytro.. ❤ from India Please keep making videos on important stuff of angular. Very helpful..
@brucearmstrong5536
@brucearmstrong5536 Год назад
Dog Breed here mat-card has children like mat-card-header/content and mat-card-header have child like mat-card-subtitle this snippet is from angular material and i want to know the effective way for us to achieve this in our projects its basically how to create custom component that acts like a tag in angular
@MahmoudTarek-pz1rl
@MahmoudTarek-pz1rl 10 месяцев назад
Im trying to build custom table using angular material table, providing custom table row using ngTemplateOutlet is not working or im missing something, any advice thanks
@OfficialVideos482
@OfficialVideos482 Год назад
Very Informative Pure Class 🙂
@DecodedFrontend
@DecodedFrontend Год назад
Thank you for your feedback! I am glad that you liked it.
@FranklyTerrible
@FranklyTerrible Год назад
Not going to lie, you're a damn legend. But I'm only left a bit with my head scratching around 29:43 - does injecting the Injector provide the reference of the WeatherWidgetComponent? That feels almost a bit "magical" to me! How was the problem with the lack of the component reference solved before? Did people simply pass the function into the ngTemplateOutletContext? I can't remember if you did any blog content for these injectors, but if you didn't I would really, really love those. Thank you for making things easier for us! Without you, I would have been lost in Angular long ago. Nobody touches upon more advanced topics like you do.
@mostafavii
@mostafavii 6 месяцев назад
Thanks for your greate video about template outelet. I've recently used it to create a dynamic mat-search-select. thanksssssss
@Gyannea
@Gyannea 11 месяцев назад
Is it possible to create a single component whose template.html file is filled with a library of snippet which I can then use EVERYWHERE in all my other components? Much like a service gives us methods we can call from any component ts file. I am unable to get your examples to work, perhaps because I have template in files and NOT in the ts file. My html files have about a 1000 lines so it makes no sense to inline them.
@jorgecanas3668
@jorgecanas3668 6 месяцев назад
I'm using your example and it works fine until I want to trigger an Output event on the parent component it doesn't work, but if I put a console.log inside the function I'm triggering the console log prints the data so it's communicating but for some reason it doesn't trigger the event, would you have any ideas as to why this is happening?
@dibfibo
@dibfibo Год назад
Im trying to pass method inside context. I want trigger this method with click. Now i'm able to pass function, but is triggered no only from click. Have u ever tried same thing?
@heavierthanlight7173
@heavierthanlight7173 4 месяца назад
Late to the party but THNX A BUNCH! Really cewl feature!
@glebzaitsev6741
@glebzaitsev6741 Год назад
With Custom weather widget, it's neat but isn't it better to extract methods to reload and copy content to the injectable class? Then either provide it in root or, optionally, this injectable can be provided in parent class providers and injected into custom weather component via ngTemplateInjector. I mean, it's basically the same, just never seen using imported methods from components. Technically it's clearly possible, just feels wrong. Great video though, really helpful and clear, love it.
@TravisSomaroo
@TravisSomaroo 10 месяцев назад
Great stuff, would it be possible to have another video in the future for more advance use cases on ngTemplateOutlet as well as typing the templateOutlet with the Angular 16 features.
@danilo_teixeira
@danilo_teixeira 11 месяцев назад
How do you do to make the HTML code colored? When I use HTML in the component, it displays with only one color, all orange
@jonatabiondiJsLover
@jonatabiondiJsLover Год назад
Great!! Just question. How di you access ngtemplate direttive file from vs code? If i ctrl +click the ngtemplateoutelet i see only the d.ts file and not the typescript.
@CeezGeez
@CeezGeez 4 месяца назад
has anyone told you you look like Luka doncic? thanks for the videos btw
@godes43
@godes43 Год назад
One thing I don't understand (and the main reason I watched your video) is why didn't we pass the actions in the context for the template the same way we did for the state? I have a component which content can be changed by the user's template but I have a couple of actions I would like to execute in the component from the personalized templates. I tried passing the methods in the context, but when the execution reaches a reference to "this", "this" is undefined and I don't know why
@MikelAingeru
@MikelAingeru Год назад
My most sincere congratulations. You have achieved something very difficult, explaining a complex Angular concept with a simple example and even showing useful tricks like $implicit, context and injector. Thank you very much! On the other hand, for me it is very strange to place the tags after the content in which they are going to be rendered. But I guess it's the only option to do it both inside and outside a component and without projection of .
@adriannlara
@adriannlara Год назад
Greate video, please make the ng-content video!!!
@MP3D2Y
@MP3D2Y Год назад
In the last example I feel like you allow a kind of circular dependency but the angular compiler does not report anything about it. Maybe I am wrong
@fnarsiste
@fnarsiste Год назад
I'l new in the game and your videos are very useful -. Thanks
@maiksousavital1671
@maiksousavital1671 Год назад
Kinda complex subject.
@TruyenDuy-xp7nr
@TruyenDuy-xp7nr 9 месяцев назад
I had been very focused until I saw that cat behind.
@alanthomasgramont
@alanthomasgramont Год назад
Why can't we just pass actions using let-action the same way we pass let-state? That seems easier.
@Asaloy
@Asaloy Год назад
injector = inject(Injector)
@williammendoza680
@williammendoza680 8 месяцев назад
muchas gracias, excelente video, nuevo subs
@VitaliiZubko
@VitaliiZubko Год назад
Great explanation... Thanks. I will share this video with ours juniors, for better understanding...
@DecodedFrontend
@DecodedFrontend Год назад
Awesome, thank you for supporting ! 🙏🏻
@hamilton.venttura
@hamilton.venttura 4 месяца назад
Muito bom Parabéns, a qualidade está muito boa de seus vídeos continue assim amigo!
@sercan272727
@sercan272727 5 месяцев назад
this was exactly what i needed. thanks for the video
@slikedollar4656
@slikedollar4656 Год назад
injector = inject(Injector) lul. Great video tho
@ugochukwuumerie6378
@ugochukwuumerie6378 5 месяцев назад
How do you create a typed template context and template ref
@kayhan4395
@kayhan4395 Год назад
luka doncic teaching angular in the offseason
@theanswer1993
@theanswer1993 Год назад
Watching this video made me realize I know nothing about templates after working 4 years with Angular. I mean I used all of this before but not like this 😅
@DecodedFrontend
@DecodedFrontend Год назад
You can't imagine how often it happens to me as well :D
@StepanZelenin
@StepanZelenin Год назад
как всегда - постановка проблемы и метод ее решения решает!
@pollo_cesar_
@pollo_cesar_ Год назад
Great content and example, as always. One disadvantage of the ng-template context is that is not typified in when used (let-state) this could be a big problem on refactoring. I hope angular does something about this.
@DecodedFrontend
@DecodedFrontend Год назад
Yeah...I also hope that it will be supported out of the box.
@akashchandran1
@akashchandran1 Год назад
Could you create a video on angular universal?
@valderrama999
@valderrama999 Год назад
Thaks for sharing. This content is gold
@jairzhino86
@jairzhino86 Год назад
So good video..... Thank you so so much
@volodymyrholodivskyi502
@volodymyrholodivskyi502 Год назад
You could set a type of TemplateRef using ngTemplateContextGuard
@DecodedFrontend
@DecodedFrontend Год назад
Yep, this is exactly the solution to fix typings issue but it also requires additional “dummy” directive for the type inversion. Just a ContextGuard in WeatherWidget won’t work unfortunately.
@samiralholo2788
@samiralholo2788 11 месяцев назад
You are the best thanks very much 3>
@tokonto5159
@tokonto5159 Год назад
Nice Cat:)
@DecodedFrontend
@DecodedFrontend Год назад
Thanks :)
@shitalunde3077
@shitalunde3077 Год назад
Please upload your course on Udemy
@alexejks8468
@alexejks8468 Год назад
thumb up for cat behind
@souhaibkhadraoui9898
@souhaibkhadraoui9898 Год назад
Can the template outlet use components that have their own template outlets, who in turn have their own template outlets (recursive template outlets-ish) ?
@DecodedFrontend
@DecodedFrontend Год назад
Sure, they can have :)
@deathbyjs
@deathbyjs Год назад
Thanks
@DecodedFrontend
@DecodedFrontend Год назад
Wow! Thank you so much for support!
@utpaulsarkar9694
@utpaulsarkar9694 Год назад
Please create video on ng-content
@abdurrahmanahmed7057
@abdurrahmanahmed7057 7 месяцев назад
Luka Doncic at it again!
@MoMoadeli
@MoMoadeli Год назад
Awesome as usual. Quick correction: @ 9: 50 you mean IMPERATIVE paradigm. You then correctly reference implementing via a DECLARATIVE paradigm.
@gagiksimonyan3782
@gagiksimonyan3782 Год назад
Thanks for another useful video, Dmytro
@DecodedFrontend
@DecodedFrontend Год назад
My pleasure:)
@kendalljones99
@kendalljones99 10 месяцев назад
Fantastic video, extremely helpful! Thank you!
@AntonioSantana-ll8il
@AntonioSantana-ll8il Год назад
Hi!! greetings from Colombia!! you videos are excellent and help me a lot to improve my code a 100% Would be nice if you start teaching IONIC with angular!!! Thanks for exists bro!
@empathetic24671
@empathetic24671 Год назад
Amazingly taught. Very informative. Thanks for this❤
@DuzyKucyk22
@DuzyKucyk22 Год назад
The cat stole the show.
@DecodedFrontend
@DecodedFrontend Год назад
that’s true 😁
@DuzyKucyk22
@DuzyKucyk22 Год назад
@@DecodedFrontend The truth is I watched the entire video, as usually. I think your concerns regarding previous one, about custom builders, are not relevant to the stuff you are doing. These are the best, the deepest and well explained tutorials on the net. They are simply not for everyone. Thank you.
@kailashpatisinghdeora3677
@kailashpatisinghdeora3677 Год назад
Hi Dymtro, you content is really great and I am from India and I liked it so much, can I know how you check library source code in vs code itself in same project?
@DecodedFrontend
@DecodedFrontend Год назад
Hi :) It is actually not the "source code in the same project". I just had another VS code window with angular source code opened and on post-production I just cut the transition, so it looks like I jumped immediately to source code which is not really true.
@kailashpatisinghdeora3677
@kailashpatisinghdeora3677 Год назад
@@DecodedFrontend oh okay thank you.
@AnwarulIslamYT
@AnwarulIslamYT Год назад
I used to use NgTemplateOutlet and NgTemplateOutletContext directive to render repetitive code in the same component. It's really useful.
@weradsaoud2018
@weradsaoud2018 3 месяца назад
thank you
@prangnana
@prangnana Год назад
Simply Superb!!! I have been using ngTemplateOutlet from more than 2 years but still I leant new things from this video. Thanks Dmytro
@Szergej33
@Szergej33 Год назад
Please do content projection as well mate! After we trip[led our dev team size, we are juti n the process of standardising our components (so not every squad reinvents the dialog, the context-hint bar, etc). We have a bunch of good and keen Angular devs, but also many "fullstack :D" ppl not very comfortable with the framework. explaining to them how to create reusable components is so difficult, but this one is a great overview of embedded templates! Would be awesome to ahve content projection as well.
@MP3D2Y
@MP3D2Y Год назад
Using the structural directive syntax *ngTemplateOutlet="templateName; context: { $implicit: variable, color: 'blue' }" we can specify all the information together. I suppose in Angular 14 they extend this to support the injector value
@SamiullahKhan
@SamiullahKhan Год назад
Again, High Quality Content, I came across this templateOutlet many times but couldn't get it left alone it's benefits, Even the official docs didn't do the justice (maybe it's me that it didn't reflect with me). This time I think, you can't cherish the benefits or fruits of declarative approach if haven't gone through the imperative approach like you did with the examples. I know the effort and time it takes to come up with such example's kudos to that. Although I have more experience with Angular than Vue, but in Vue (I think) they are called scoped slot and I have used it well but coming to Angular I didn't get the templateContext it until this Good, Lengthy video. After knowing this concept now, I think Projected Content don't have luxury of Context. What else?
@dev-gj3dh
@dev-gj3dh 3 месяца назад
wow!!!
@PNWAA
@PNWAA Год назад
Informative video. I do have a question, why didn't we use ng-content for dynamic content in a widget container. Additionally, I think the widget component should be dummy (no data)
@dumidupramith3881
@dumidupramith3881 Год назад
thanks lot
@Bukratusi
@Bukratusi Год назад
please make more and more videos please. we love u
@DecodedFrontend
@DecodedFrontend Год назад
There will be more cool vids ;)
@sukdipkar8876
@sukdipkar8876 3 месяца назад
Nobody in youtube teaches angular like this depth as you! Thank you very much and keep teaching us such valuable concepts.
@samuelalejandro2104
@samuelalejandro2104 Год назад
Personally, I prefer using ngComponentPortal and using an interface to bridge the data. So I can associate each component with a key in an object and change the components through this key
@CapitanCoder
@CapitanCoder Год назад
very useful and helpful with of course high quality, not sure if my suggestion is right, because I find this speaking pace seems to me slow, maybe increase a bit speed of speaking would get more attractions. :)
@oleksiipopov5143
@oleksiipopov5143 Год назад
Thank you! Very useful video!!!
@DecodedFrontend
@DecodedFrontend Год назад
You are welcome:)
@Simon_IHG
@Simon_IHG Год назад
Hi, Thanks for your video ! Is this approach better than using @ContentChild ? The use of @ContentChild seems more "appropriate" as the custom template is defined inside my component selector rather than outside. Or does it depend on the use case ? If there are multiple components that need to override the template, the @Input will be more convenient as the template will be defined only once. Whereas it will be defined inside each component with the use of @ContentChild ?
@jakubrakowski3429
@jakubrakowski3429 Год назад
U make my learning curve easy now :). This is the missing spot for more advanced concepts. Cheers
@claudiuciprianbetiuc3985
@claudiuciprianbetiuc3985 Год назад
Dmytro, seeing that not only in the comments of this video, but in others also, people that I guess (hope) to be subscribers of your channel mention topics they are interested in for the future videos of yours, I was wondering: would it make sense to you or could it be a win / win strategy if you would start something like a free options poll / list / for topics we would be interested in for your following RU-vid videos / paid courses ? Just some food for thought. I know I would be interested in a few specific topics and possibly others also.
@dav1tt
@dav1tt Год назад
Great tming, hello I have lots of nesting in html template(I'm working with forms) and I was thinking aoubt using template to make it more readable. Is it good idea or should I solve in another way?
@georgeknap2631
@georgeknap2631 Год назад
There's never enough videos about ngTemplateOutlet 🤯
@malyna
@malyna Год назад
Thanks
@MrBau25
@MrBau25 Год назад
Another great video! Thanks a lot for everything you do for us! I really learned a lot from your videos. Yes, we really want the next video with the ng-content tips and tricks.
@anhquande
@anhquande Год назад
Another great video. Thanks ❤ and Happy new year 🎉🎉
Далее
Angular Design Patterns - Bridge [Advanced, 2020]
24:34
Редакция. News: 136-я неделя
45:09
Просмотров 1,5 млн
Myths About Angular in 2024
11:19
Просмотров 4,2 тыс.
TOP 6 Mistakes in RxJS code
18:35
Просмотров 20 тыс.
ngTemplateOutlet is WAY more useful than I realised
16:36
First look at Signals in Angular
18:43
Просмотров 45 тыс.
Input Signals in Angular 17.1 - How To Use & Test
14:34
Error Handling in Angular - Complete Guide (2022)
41:27