Angular Crash Course

Поділитися
Вставка
  • Опубліковано 20 лип 2024
  • Learn the fundamentals of Angular in this project-based crash course
    Video Sponsor:
    www.hostinger.com/traversymedia
    - Use the code TRAVERSYMEDIA for 10% off!
    Code:
    github.com/bradtraversy/angul...
    Latest Udemy Courses:
    traversymedia.com​
    💖 Support The Channel!
    / traversymedia
    Timestamps:
    0:00 - Hostinger Sponsor
    0:35 - Intro & Slides
    7:41 - Angular CLI & Setup
    10:39 - Files & Folders
    14:49 - Component structure
    16:42 - Properties & Interpolation
    18:40 - Global Styles
    19:20 - Header Component
    23:15 - Button Component
    24:36 - Component Input Data
    22:19 - Creating an event & event emitter output
    30:51 - Mock Tasks & Task Interface
    34:10 - Tasks Component
    36:03 - Looping with ngFor
    37:16 - Task Item Component
    40:13 - Angular Font Awesome Setup
    44:39 - Create a Task Service
    49:06 - Creating and Subscribe to Observable
    50:04 - JSON-Server Setup
    57:29 - Angular HTTP Client
    59:48 - Fetching Tasks
    1:02:59 - Deleting Tasks
    1:12:54 - Toggle Reminder
    1:20:29 - Add Task Component
    1:26:26 - Forms Module & ngModel
    1:29:00 - Submit & Create Task
    1:37:02 - Toggle Button & UI Service
    1:51:38 - Angular Router
    1:57:34 - Limit Component to Route
  • Наука та технологія

КОМЕНТАРІ • 1,4 тис.

  • @UsmanTheDev
    @UsmanTheDev 3 роки тому +1589

    Today i got my first job due to your courses. Love and respect for you from pakistan

    • @TraversyMedia
      @TraversyMedia  3 роки тому +550

      That’s awesome man, congrats. But it’s due to your hard work. I may have had a helping hand, but you did it. Great job 😊

    • @simple8810
      @simple8810 3 роки тому +15

      Congrats man

    • @Ab-cj6gl
      @Ab-cj6gl 3 роки тому +10

      congrats brother

    • @adilmughal2251
      @adilmughal2251 3 роки тому +7

      Congrats bro.

    • @saurabhumadikar2345
      @saurabhumadikar2345 3 роки тому +6

      Congrats

  • @3pleFly
    @3pleFly Рік тому +187

    If you have the error where your variables have not been initialized = that's because typescript requires you to initialize your variables similiar to strongly typed languages. While you should have a default value set and work with this feature to really utilize typescript, for this small 'project' you could just put an exclamation mark before your variables and it will let you leave them uninitialized, for example: subscription!: Subscription; or @Input() task!: Task;

    • @reedhimes
      @reedhimes Рік тому +7

      thank you! i had this issue. also when the button component was created, there was no import for Input, so had an error on @Input.

    • @RataBohemia
      @RataBohemia Рік тому +6

      You saved me bro, thank you

    • @ericlaravega6438
      @ericlaravega6438 Рік тому +5

      Thanks a lot, I couldn't find the way to make it work

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

      ty man! that was very helpful

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

      Thanks. Spent the whole day trying to resolve this..

  • @rohitpurkait6951
    @rohitpurkait6951 3 роки тому +523

    If you are using the latest version of ts then make sure to declare your variables in the constructor otherwise it will throw an error.
    You can also use an ! sign after the variables. For example, @Input task!: Task;

    • @altangerelbaatar9960
      @altangerelbaatar9960 3 роки тому

      hairtaishu anda

    • @rahulxdd
      @rahulxdd 3 роки тому

      Could you please give another example? I am new to this

    • @jewkeynoh
      @jewkeynoh 3 роки тому +29

      " ! " for required variable and " ? " for optional.
      For Example:
      text?: string;
      day!: string;
      I'm using Angular 12 btw.

    • @rajatnegi3896
      @rajatnegi3896 2 роки тому +1

      please give snippet of how to do it in constructor

    • @delta1962
      @delta1962 2 роки тому +60

      @@rajatnegi3896 at 25:40 i used the following code:
      import { Component, OnInit , Input} from '@angular/core';
      @Component({
      selector: 'app-button',
      templateUrl: './button.component.html',
      styleUrls: ['./button.component.css']
      })
      export class ButtonComponent implements OnInit {
      @Input() text!: string;
      @Input() color!: string;
      constructor() { }
      ngOnInit(): void {
      }
      }

  • @damienquamme4903
    @damienquamme4903 8 місяців тому +42

    If you're using Angular 17, you do have to import the component, at least I had to in order to get this to work. Example below:
    app.component.html
    import { Component } from '@angular/core';
    import { CommonModule } from '@angular/common';
    import { RouterOutlet } from '@angular/router';
    import { HeaderComponent } from './components/header/header.component';
    @Component({
    selector: 'app-root',
    standalone: true,
    imports: [CommonModule, RouterOutlet, HeaderComponent],
    templateUrl: './app.component.html',
    styleUrls: ['./app.component.css']
    })
    export class AppComponent {
    title = 'angular-crash';
    }

    • @XIAIXd3
      @XIAIXd3 8 місяців тому +3

      Thank you for this! I thought I was going crazy. Would be cool if OP would update this whole tutorial for V17 on upward.

    • @joaomarcos7545
      @joaomarcos7545 4 місяці тому +1

      Thank you!!!

    • @HafsahJilanee
      @HafsahJilanee 4 місяці тому +1

      thank youuu

    • @JuanManuelLinaresBloggerDeNiro
      @JuanManuelLinaresBloggerDeNiro 2 місяці тому +2

      Thanks man, you also saved me! I was under the impression that it had to do with Brad using a previous version of Angular, but I didn't completely understand the instructions provided in the error. Just as a suggestion: you should probably clarify that the code above is from app.component.ts., not app.component.html.
      Anyway, you made my day :)

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

      Ils in .ts ont .html but thank you

  • @kevyyar
    @kevyyar 2 роки тому +72

    We need a full course Brad! You explain so much better than all those other instructors!

    • @BusinessWolf1
      @BusinessWolf1 Рік тому +9

      he kinda did. you can learn everything else on your own bit by bit, as you should

  • @robertrey7002
    @robertrey7002 3 роки тому +24

    Hey Brad you have built really an awesome channel over the years. Even though I don't really spend much time with Web Dev anymore, I still like to come back from time to time and watch your content, as well as your insights on life/work/mental health etc... Truly amazing work

  • @hashanhemachandra4071
    @hashanhemachandra4071 2 роки тому +21

    Thanks so much Brad. Thanks to this tutorial, I got my first job as a Software Engineer. Your life story is so inspiring and motivated me in my journey. I was a mechanical engineer and with so much hard work, I was able to shift my career. And on that journey, you played a most crucial role. May gods blessings be with you every day. Love and Respect form Sri Lanka ❤️

  • @reezuanrahim6646
    @reezuanrahim6646 3 роки тому +57

    I think this is by far the most complete Angular tutorial done in two hours.. although it is not meant for a total beginner. Well done.. tq.

    • @dantshisungu395
      @dantshisungu395 2 роки тому +3

      Unfortunately some of us are total beginner

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

      @@dantshisungu395 for total beginners, I would recommend doing a lot of JavaScript learning (and also HTML and CSS) before learning Angular.

  • @webdecodedwithfahad4414
    @webdecodedwithfahad4414 3 роки тому +185

    You cannot imagine how much happy I was to get notification about this course😍

  • @alexanderbarsukov1796
    @alexanderbarsukov1796 3 роки тому +101

    I was fighting my way through Udemy course I bought for several days, and after watching 30 minutes of this crash course I already understand more Angular than ever! I am so happy this course appeared today! Thank you so much Brad! If I land a job first thing I'll do I will buy some of your courses.

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

      Exactly my situation. "Angular Corre Deep Dive", terrible experience.

  • @muthu1046
    @muthu1046 3 роки тому +73

    Finally!.. I've been waiting for Angular Crash Course for a long time👍

  • @lvm_azn
    @lvm_azn 3 місяці тому +5

    26:28 Had issues with the [ngStyle] attribute
    I did instead:
    [style.background-color]="color"
    - Update, also just learned that the default mode for components is standalone now. Which means whenever he is going to the app.module.ts to import something, just import it to the component you need it in. standalone = modules are for only that component.

  • @karlchiucinco3801
    @karlchiucinco3801 2 роки тому +3

    Thank you so much for that crash course! I think you covered all the fundamentals in building an Angular app.
    No boring lectures, just straight coding which is what I need!

  • @bornultimat4813
    @bornultimat4813 2 роки тому +5

    Probably the best Angular tutorial I've ever seen...
    You really helped me to understand the framework and it's function!
    Especially the combination of Frontend and Backend...
    Thank you very much!!

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

    Brilliantly explained ... I've been doing Angular related projects for a while but mostly it was a Google search to get different things done, with your course, everything is covered so wonderfully that now I have a better hang of it. Thanks a ton ... Keep up the good work !!!

  • @jinge8943
    @jinge8943 2 роки тому +4

    I saw this tutorial 2 times, and it was well organized tutorial for a new learners means most concepts needed in Angular in just 2 hours with small todo app.
    Did a good job!

  • @lenvaz6689
    @lenvaz6689 3 роки тому +3

    For minor corrections which actually mislead begginers most of the time is when you used a function call directly into the *ngIf condition for add task button. It does effect an application of this size but it does affect larger applications as a function can always have a different output.

  • @user-fi2ty4bm2n
    @user-fi2ty4bm2n 2 роки тому +16

    I've been following React, Vue, and Angular here, and in my opinion:
    1. The advantage is that angular separate everything in the name of the component folder, which makes it easy to track the code.
    2. Another thing is that the observable and subscription pattern ensures the asynchronous actions are clear and robust.
    3. Default typescript.
    The points mentioned are fonds of debugging to refactoring.
    -----
    3. However, one component has four files, and sometimes it could be messy. Lots of files are kinds of mental attacks when switching and looking for files.
    4. Angular exposes more complexity to the developer that one must first learn the class, constructor, implement, and the public, private data types. Otherwise, it could be challenging to understand. Instead, React and Vue hides those complexities, which are more user-friendly.
    5. ng generate xxxxx is annoying.

    • @frantostin
      @frantostin 2 роки тому +8

      As a little help, you can also use "g" instead of typing generate, and the same goes to component with "c", so you can just use "ng g c" and the name of it. Hope this helps a little bit!

    • @user-fi2ty4bm2n
      @user-fi2ty4bm2n 2 роки тому +1

      Thank you!

    • @fatihersoy7559
      @fatihersoy7559 2 роки тому +5

      "Angular exposes more complexity to the developer that one must first learn the class, constructor, implement, and the public, private data types". You should be thanking Angular because of this. Becuase they are the very fundamental of software developing, if you don't need them with other libraries/frameworks today, you'll need if not now but tomorrow so learning the basics of OOP is always good. Also if you don't want, you may not use ng generate, you can manually create your files and register to modules yourself. ng g just makes everything easier.

  • @moefarid1953
    @moefarid1953 3 роки тому +7

    Brad, we love your work and amazing tutorials. Big fan!!

  • @john_michael_white
    @john_michael_white 2 роки тому +21

    This is a magnificent tutorial. A month ago I watched it, having had a background which included AngularJS several years ago, and now I'm flying with the Angular 13. It's such a fun framework to develop with once you're over the learning curve, and getting over it was 100% thanks to you. Great stuff!

  • @uncreativename454
    @uncreativename454 Рік тому +8

    Can I just say I love the little notes and comparisons you sprinkle in for people who are coming from React
    Like saying "It's like props" or "You don't need to import this here" for example
    It actually really helped me better understand this, and of course this is an amazing video as usual overall!
    Thank you!

  • @luizcarlosdequeirozfilho2580
    @luizcarlosdequeirozfilho2580 2 роки тому +51

    I was getting this error while declaring "onDelete(task)" (1:04:50): Parameter 'task' implicitly has an 'any' type.ts(7006) angular. I fixed declaring as "onDelete(task: any)".
    It's also possible to change "noImplicitAny": false, at "tsconfig.json" file, but I didn't tried this way.

    • @CabetoCifuentes
      @CabetoCifuentes 2 роки тому +1

      Thanks!!!

    • @febobebo9634
      @febobebo9634 2 роки тому +4

      Thank you very much, your comment helped me right away.
      I think it's better that I get used to declaring variable type, as that is a great feature of TypeScript.
      By the way, to be more precise set variable type to Task.

    • @alessiolearning8735
      @alessiolearning8735 2 роки тому +1

      As @Febo Bebo said, to be precise you should declare "onDelete(task: Task)"

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

    I searched many other courses in yt and even though this is a crash course with older version than actual is still the best around. Keep going Brad!

  • @robertjesuraj
    @robertjesuraj 3 роки тому +5

    Wanted to appreciate the effort you put to make the points clear. Great teaching skill❤️. This angular 2 hr course is enough to build great applications.👍 covers all topics. 👏

  • @mirkovolkov7636
    @mirkovolkov7636 2 роки тому +13

    Since the project is fairly simple, you could embed the HTML and CSS code in the "ts" files reducing "files hopping", also you can create a minimal app with "ng new ##name## --minimal" , this way you reduce to 1 the number of files per component, furthermore you can create minimal components with the "-s -t" options at the end of the command.

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

      you made that comment 11 months ago, the video was posted 2 years ago.

  • @studentemail8067
    @studentemail8067 3 роки тому +23

    I was waiting for this course. And hope you do more Angular projects.
    Thank you Brad.

    • @mainiyale1773
      @mainiyale1773 3 роки тому +1

      Simplilearn is offering 🔥Free Angular Course: www.simplilearn.com/learn-angular-basics-free-course-skillup?SLP02675&

  • @OverDrive804
    @OverDrive804 3 роки тому +15

    Just recently started learning Angular since the company I work for requires you to learn it and I want to teach myself Ionic at some point. I use to not like Angular, but I am starting to really enjoy it. Mainly because of how simple it is to build components and services to integrate existing third party APIs. Hope it will be here to stay for a long time🙂

    • @KristherLouisVidal
      @KristherLouisVidal 3 роки тому

      Same here. I was a vue dev before and after learning angular, I’m enjoying it more

  • @cybercharlatan9424
    @cybercharlatan9424 2 роки тому +5

    This tutorial was awesome, normally I would just lurk but I felt a need to say how much I appreciate you making this video. As you led on, my background is with React so I agree Angular can be a little more tricky but I'm tempted to watch your React video as well just because I like your style so much and see if I pick up anything

  • @Dev_Everything
    @Dev_Everything 3 роки тому +25

    25:30 @Input() text: string = "";
    @Input() color: string = "";

    • @MrWowzorz
      @MrWowzorz 3 роки тому

      Thanks, upvoted

    • @mackivera
      @mackivera 2 роки тому

      Thanks a lot! this is so helpful :)

    • @neovim.
      @neovim. 2 роки тому

      Was looking for this too, thanks

  • @bittujacob8776
    @bittujacob8776 3 роки тому +1

    i started watching your video in 2017 (html website development) when i was jobless, and now when i hear your voice, it reminds me where i was and where i am! Thankyou!
    God bless.

  • @DeanMcCoy
    @DeanMcCoy 3 роки тому +7

    Never hurts to get a refresher on an Angular crash course. 👍

  • @arvilynrogel8781
    @arvilynrogel8781 2 роки тому +4

    Hello, thank you so much for this 2 hour tutorial. It's a great help for me who's currently on bootcamp as a full stack developer.

  • @PaulSebastianM
    @PaulSebastianM 3 роки тому +5

    56:22 Brad, you can double click a word to select it, type " and VSCode will wrap the word in quotes instead of what you would normally think it would do, which is to replace the word with a ".

    • @tobiasfuchs2502
      @tobiasfuchs2502 2 роки тому +2

      By pressing CTRL+D you can also select further elements and then type " to replace all at once.

  • @dddontalktopolice2754
    @dddontalktopolice2754 2 роки тому

    4 years ago I started my career with great help from traversy media tutorials. 4 years later I’m still learning new things and traversy always seems to have a good tutorial no matter what I am learning … this channel is the best. Thanks so much for all the content .

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

    at 25:28 when Brad declares the @Input, if you get an error "Property has no initializer and is not definitely assigned in the constructor"' you can write it like @Input() text!: string; this is a temporary fix OR @Input() "text": string; is the same OR keep it the same as how Brad writes it and just assign it by writing this.text=" " in the constructor.

  • @SSeeiicckk
    @SSeeiicckk 2 роки тому +3

    Thank you for your tutorials. I've been able to get a job! Full stack and in a great degree thanks to your videos and tutorials. You're the best!

  • @b1n0ry92
    @b1n0ry92 3 роки тому +32

    Brad I wish Django Course like this, hope you see this :) and all I want to say is thanks for everything you have done for the community, you are great man among us.

    • @TraversyMedia
      @TraversyMedia  3 роки тому +8

      I have a Django crash course. It is maybe a year old, ut still relevant

    • @b1n0ry92
      @b1n0ry92 3 роки тому

      @@TraversyMedia :)

    • @IRgEEK
      @IRgEEK 3 роки тому +1

      @@b1n0ry92 and the Django course just as awesome as all Brad's content. Go get it.

  • @CarltonStith
    @CarltonStith 3 роки тому

    Thanks Brad! I’ve been waiting on this course from you.

  • @nieev15july
    @nieev15july 3 роки тому +253

    In case you getting this compilation error- Property '…' has no initializer and is not definitely assigned in the constructor, add this in tsconfig.json - "strictPropertyInitialization": false

    • @ninarocket3149
      @ninarocket3149 3 роки тому +3

      THANK YOU!!!

    • @TheRonron1994
      @TheRonron1994 3 роки тому +14

      @@reyalvarez1617 Put it inside the angularCompilerOptions object.

    • @TheRonron1994
      @TheRonron1994 3 роки тому +16

      This is what I hate w/ Angular. Every time I try to follow a tutorial, I'll randomly encounter this kind of hiccups.

    • @techieT
      @techieT 3 роки тому +2

      Thank you sooo much Rajeev.I've been looking for a solution everywhere... thanks a lot

    • @vuestacks
      @vuestacks 3 роки тому +2

      This fix worked. Thanks so much!

  • @kshitijrangari7014
    @kshitijrangari7014 2 роки тому

    Hi Brad, I have been following your courses since past 5 years.
    Amazing work here, really helped me brush all the key angular concepts.
    Would love to see a short video on ngrx with angular.

  • @ebrahimsaed8810
    @ebrahimsaed8810 2 роки тому +3

    Best programmer in the world, I really appreciate everything you do, truly learning a LOT from you

  • @damienquamme4903
    @damienquamme4903 8 місяців тому +5

    With Anuglar 17, when adding the button component props, I had to set the strings with empty values to get them to work.
    Example:
    @Input() text: string = "";

  • @BarakAlmog
    @BarakAlmog 2 роки тому +1

    Magnificent, love it so much! Exactly what I was looking for. You're awesome!

  • @lvm_azn
    @lvm_azn 3 місяці тому +2

    36:21 Had issues with the *ngFor
    Fixed By:
    In your tasks.component.ts file
    - import CommonModule
    - Add CommonModule to the imports list in your Component Declaration

  • @AussieAmigan
    @AussieAmigan 2 роки тому +5

    I think this would be a great tutorial for my team to get up to speed on Angular. It was neat what you did with the Add button at the end with it detecting the route, which is a good concept to teach. However, your Button component has just become less generic, and if you use this route detection technique specific to your page, which may be one of dozens developed by a team in an enterprise, I doubt your pull request will be passed. Just saying. We have at least a dozen such custom controls in our project, so a great concept to teach. Thank you.

  • @vjzb3
    @vjzb3 3 роки тому +8

    You are so clutch with the timing of this video. Thank you, Brad!

  • @benji-L
    @benji-L 2 роки тому

    Really excellent tutorial. I learned so much from completing it! Can't wait to start the next one.

  • @amazekhashaa7309
    @amazekhashaa7309 3 роки тому +38

    Yeah i think angular is best with typescript. Angular has a structure like a building. Its on point Brad!

  • @deefadale
    @deefadale 3 роки тому +11

    Tip: Most of the pain of Angular is removed when you use its Template observable binding features instead of Component binding via the 'async pipe' (eg *ngFor let task of tasks$ | async). This cuts out about 80% of code in your component.ts as the async pipe handles all the observable subscribes/unsubscribes for you. Best rule I found: manual component subscription => code smells, auto template subscription => blessed life, all remaining mandatory subscriptions abstract away into a service if possible. Great crash course for beginners though, awesome content!

    • @IconicProps
      @IconicProps 2 роки тому +1

      I would like to say I follow, but I don't. Can you point me to some more info on this?

  • @raghibhussain1375
    @raghibhussain1375 3 роки тому +1

    this was amazing, i was waiting for this since a long time, thanks

  • @davidwang5445
    @davidwang5445 2 роки тому +1

    This is a great Angular crash course. It is very practical, simulating to the real world. The teaching is very clear, well organized and presented. Strongly recommended!

  • @saikumark1224
    @saikumark1224 3 роки тому +11

    I completed learning Spring Boot yesterday. Then, I wanted to learn a JS framework. I fixed on Angular.
    And Now I get this notification.
    Thank you Brad 👍✌️.
    You are life savior buddy🙏

    • @sachin__ak
      @sachin__ak 3 роки тому +1

      Go with Vue or React, it is better than angular

    • @saikumark1224
      @saikumark1224 3 роки тому +3

      @@sachin__ak I will learn them later.. But the Orgs in India prefer Angular mostly... That's the reason I am learning Angular

    • @saikumark1224
      @saikumark1224 3 роки тому

      @@sachin__ak Are the companies hiring for React here?

    • @barryblack8332
      @barryblack8332 3 роки тому

      @@sachin__ak You mean it's easier to learn.

    • @sachin__ak
      @sachin__ak 3 роки тому

      @@barryblack8332 yep and developer friendly too, vue js is the most simplest to learn

  • @aissa.bouguern
    @aissa.bouguern 3 роки тому +3

    Very good and well made course! I liked the Subject/Subscription section.
    I worked with React and Vue in many projects, but I think Angular, as a framework, is more elegant and well designed.
    Thank you very much for this video.

    • @asakurayoh3909
      @asakurayoh3909 3 роки тому

      I have been using Angular for few years now. It’s pretty easy and powerful framework. Also, it’s good for big, complex projects.

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

    excellent! so clear and easy to follow, i am a 30 year IT professional and 18 year .NET developer and needed to look at this for new versions of my company's applications. Great first step and now that i see how the architecture is structured it is much less confusing than the first attempt made at understanding it. I am subscribed and can't wait to watch the other videos.

  • @antio1753
    @antio1753 3 роки тому +3

    FINALLLYYYYYYYYYYY SOME FRESH ANGULAR IN UA-cam !!!!!

  • @tradewithtony
    @tradewithtony 3 роки тому +10

    Waoooooh Greetings from Tanzania, Have been waiting for this one.

    • @mpembainc
      @mpembainc 3 роки тому

      React na Angular Developer kutoka Tanzania visiwani (Zanzibar). Nimefurahi kukutana na ww hapa.

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

    I love this tutorial because it is swift but still clear. Exactly what I'm looking for as a backend developer that doesn't need much background on the underlying concepts.

  • @Liproqq
    @Liproqq 3 роки тому

    really good stuff. I haven't worked with angular in two years and this is perfect for refreshing

  • @derickmoncado
    @derickmoncado 3 роки тому +3

    FINALLY. Been waiting for this one 🙏

    • @RR-jq1bi
      @RR-jq1bi 3 роки тому

      yes, it took a long time

  • @barteg_s
    @barteg_s 2 роки тому +32

    Coming from React I'm finding this quite challenging to be honest. My brain is so used to JSX and state, that all of this seems really hard to remember. Especially rxjs. I know it will take up quite a lot of time to be comfortable, but this video is a good starting point. I landed a job which requires me to code in Angular, hopefully I will be productive with it soon. Thanks Brad!

    • @123userthatsme
      @123userthatsme 2 роки тому +3

      Right?! He started adding to task service and I was like "why is his beginner's tutorial stateless??"

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

      If you're having trouble wrapping your head around writing Angular tests, try the suite-slimmer-angular npm library, makes it a lot easier

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

      @@123userthatsme Is that the reason why when deleting a task he is doing it both from the db AND filtering it out from the UI?
      I thought when you delete it from the db it automatically updates the UI since we have getTasks() in the onInit method

    • @tastes-like-straberries
      @tastes-like-straberries Рік тому

      @@stefannikolovski3167 that's a good point. i don't know why i never thought of it

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

      @@stefannikolovski3167 The ngOnInit() hook only gets fired when the component is created, so if you want to fetch the data again later you need to implement that some other way.
      Generally speaking, when you’re interacting with data via HTTP requests, you don’t want to make unnecessary requests, so you don’t want to do another HTTP GET after the HTTP DELETE if you don’t need to (in this case you don’t need to).
      So you just delete in the DB and if that is successful you delete in the UI.

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

    I am new to Angular and was looking for some good resources. This is absolutely awesome! It includes step by step explanation along with some of the best practices

  • @regendaas
    @regendaas 2 роки тому +1

    Excellent introduction to Angular; very helpful; concise but still complete. Thanks a million.

  • @kettenbach
    @kettenbach 3 роки тому +3

    Outstanding 🙏❤️😍 I still got so much love for the Big Red A. People shit on because it's a little more challenging. They can't handle the heat of rxjs. Love you bro. 🙏

  • @ramiibrahem4386
    @ramiibrahem4386 3 роки тому +8

    Angular is my favorite frontend framework 🔥
    Thank you very much 💖

    • @jgttech
      @jgttech 3 роки тому

      And probably the only one you know if this is your favorite.

    • @ramiibrahem4386
      @ramiibrahem4386 3 роки тому +1

      @@jgttech
      Well, I dealt with other frameworks like Vue and Svelte as well as React library and in the end I found that Angular was the best choice for me but unlike you, my preference for a specific framework doesn't mean that I don't respect other frameworks.

  • @dalestewart
    @dalestewart 2 роки тому +2

    Looking forward to be taking future courses from you. Love and respect for you from Ottawa, Ontario Canada

  • @romanroman9638
    @romanroman9638 3 роки тому

    Brad, you are always on time! That's exactly what I was looking for

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

    Great Learning, THANK YOU.

  • @dayernGomez
    @dayernGomez 3 роки тому +3

    love it, i was wating for new angular course of you, keep going excelent course, btw what theme are you using? XD

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

    Thanks. I always find myself back on your channel anytime I need to learn / refresh my memory on a framework. Great videos.

  • @mk9834
    @mk9834 3 роки тому

    Thank you so much Brad!!! Exactly what I am looking for! Very informative!

  • @PaulSebastianM
    @PaulSebastianM 3 роки тому +14

    1:07:16 Your event binding (onDeleteTask)="deleteTask(task)" is not actually taking the task from the event data. It's getting the task as part of the ngFor directive, ie. from the current component's state (tasks.component.ts). To call deleteTask() with the actual data from the onDeleteTask event, you need to call deleteTask($event) when this event fires. $event is Angular convention and is any object that you might have passed to the emit function of the EventEmitter (ie. 1:06:30 this.onDeleteTask.emit(task)). So basically $event === task here, the actual task that is correlated to the correct X icon/button that was clicked. Both version are correct functionally and do the same thing in the end, but to me, it seems more logically correct to use the actual data that comes with the event when you handle one and not handle some other data in this case.

    • @Blindbuymovieguy
      @Blindbuymovieguy 2 роки тому

      I am getting an error when I use either task or $event during compiling. I am using the latest version of Angular

    • @raTex199994
      @raTex199994 2 роки тому

      @@Blindbuymovieguy yea same, did u manage to fix it ?

    • @raTex199994
      @raTex199994 2 роки тому

      I figured my error in particular:
      I had @Output() onAddTAsk: EventEmitter = new EventEmitter(); istead of
      @Output() onAddTask: EventEmitter = new EventEmitter();
      in the add-task.component.ts
      So key sensitivity is something to look out for :)

    • @pashabiceps95
      @pashabiceps95 2 роки тому

      I was looking for the people that noticed this as well

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

      Hate being stuck on the minute 1:05:01. Anyone have an easy fix? Did he do changes in tsconfig.json?

  • @gradientO
    @gradientO 3 роки тому +17

    Angular is good actually. It doesn't deserve the hate it gets. It's sad. I thought of finally deep diving into angular after some years, and you release this video exactly after that. Thanks

    • @darkman8939
      @darkman8939 3 роки тому

      @@chitrangsharma bro even updates are not crucial in angular if you learned angular since v2 it still the same until now it gets update on the performance and internal stuff not the syntax or features, and it does not follow MVC Angular follows a component-oriented architecture, mvc can only be on the backend

    • @DEVDerr
      @DEVDerr 3 роки тому +6

      It's hated because:
      - it's named poorly - it shouldn't be named Angular anymore, because still people think about Angular 1 after hearing "Angular" to this day (which is ridiculous for me but it is what it is unfortunetly. Blame people)
      - it's not as minimalistic as React or Vue - but people don't know that it's good (really good), because only Angular gives you 100% compatible features like SSR, PWA etc. right away and it well suits corporate apps with it's strict way of doing things which reduces amount of bad code and architecture by a lot
      Maybe some day this weird JS community will finally see how many problems Angular solves in this ecosystem

    • @barryblack8332
      @barryblack8332 3 роки тому +1

      @@DEVDerr You would be surprised how difficult it is to give a good name to your stuff.
      But then I think they can do better, these guys went from renderer to renderer2(like HOW).
      There's a componentFactoryResolver and
      resolveComponentFactory.
      There's more of these.

    • @funkymunky8787
      @funkymunky8787 3 роки тому

      This is not a deep dive into angular by any means

    • @punsmith
      @punsmith 3 роки тому +3

      Much agreed. Angular allows me to do almost everything I want without downloading any additional dependencies and have a robust and performant web app. But for some reason people were tricked that "Classes" are a bad thing, that JSX somehow is super amazing and Angular directives are not "pure" html and SUPER confusing. Also, only React developers have become NOTORIOUSLY worried about immutability and components knowing their own state, eventually spawning some of the weirdest concepts (like creating a component for a component that holds its state...). Angular and Vue all the way. Maybe now Svelte too... but I'll wait for what Sapper will be replaced by.

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

    Brad your work is really amazing. You explain and teach things I really want to learn. When it comes to selecting a JS framework, I found that Angular is the option to go with but I didn't go for it because I thought it's based on Typescript; but now at the Intro of this course you stated that using Typescript is optional. It made me feel good, get up and invest my time in working with Angular.

  • @MommaRoo36
    @MommaRoo36 2 роки тому +1

    Thank you for this wonderful tutorial! You explain things for WHY you are doing them. Things really started to click after your tutorial. Thank you!!!

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

    This was a really awesome course that I had ever followed. The tutorials I used to watch used the localstorage to store the data. But you took us on a full journey of angular. Thanks Brad!

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

      ua-cam.com/video/ql77Hk1RTGA/v-deo.html

  • @javiersistemas
    @javiersistemas 3 роки тому +6

    Who put a dislike to our buddy Brad? 🤔 ... All my success, my man ... You deserve 10k likes in every video cause you're very clear in your explanations 😀😀🚩🚩🙏🙏💪💪

    • @kettenbach
      @kettenbach 3 роки тому +4

      Ben Awad? 🥕👨‍🌾🚜

    • @javiersistemas
      @javiersistemas 3 роки тому

      @@kettenbach hahaha 😂😂😂

  • @thebandwagoneffect
    @thebandwagoneffect 2 роки тому

    I like following along with the exact version when I watch tutorials. This reducing the unrecognized errors you encounter from newer version. If you want to do the same Traversy is using angular 11.2.12 with Typescript 4.1.15. I used NVM to change my version of node to 10.13.0 (and then "nvm install-latest-npm" to get to a usable npm version)

  • @lukebergmann1485
    @lukebergmann1485 3 роки тому +1

    Thank you for the video, Brad! I am currently learning Angular for a new job and this was super helpful. I gravitate towards React more, but this was super easy to follow!

    • @samihatasnim
      @samihatasnim 2 роки тому +5

      same for me. I worked with react previously but a new internship came along and told me learn angular. This helped a lot !

  • @vladimirjecic3871
    @vladimirjecic3871 Рік тому +7

    I followed this entire course and made my first project in angular, thank you! Your presentation was really good,and easy to follow through. One suggestion I only have is to name variables differently across components for example at 37:57, too many things had name 'task. It all works well like that, but as a beginner who seeks to understand how parameters are passed and how angular works in general, it would make more sense to me if I was able to discern exactly which property is referenced and where.

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

      Did you use Angular 15 ? or which version exactly ?

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

      @@aishaghalia1259 Hi! I used the latest version at that time which was 15.0.1

  • @hemanthkotagiri8865
    @hemanthkotagiri8865 3 роки тому +3

    Thank you so much for this video! I really appreciate your efforts in educating us!

  • @nataliavrs
    @nataliavrs 3 роки тому

    Was waiting for this video for so long, thanks!

  • @AmolAghav
    @AmolAghav 3 роки тому

    Amazing crash course! Great for anyone to refresh the architecture.

  • @patrickneggie599
    @patrickneggie599 3 роки тому +6

    What theme are you using for VS Code? The text looks really clean in these colors. Great video by the way!

  • @MrSudatt
    @MrSudatt Рік тому +11

    Sir, I am following your courses from a long time (I am a slow learner ), you are really a good teacher I have finished HTML, CSS, javaScript ( your course on udemy ) . It's a request to you that would you Please make a detailed crash course on Angular( just like your javaScript course on udemy). It would be a great help to the freshers like me to get entry in a IT company (to start a career as a developer) .

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

      FreeCodeCamp has an Angular for beginners course which is 17 hours long.

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

      @@jannickbreunis thank you very much ...I feel very happy that someOne reply to help...Thanks

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

      @@jannickbreunis That guy doesn't go through the nuances of Angular. He may speak for about 10 secs about providers and move on.

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

      I've only installed Free Solid Icons when asked : Choose Font Awesome icon packages you would like to use. What should I do ?

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

    Thanks for amazing crash course video. I kind of revisit when ever I do have doubt on your videos to get some idea how it needs to implement. Kind of rewind concepts when it is urgent. Thank you so much Brad for amazing content ❤

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

    The quality and robustness of your tutorial videos is always appreciated.

  • @escanorgod
    @escanorgod 2 роки тому +7

    So if you are having trouble with the input fields, try to initialize them like this @Input() text : string | undefined

  • @tiagovieira2375
    @tiagovieira2375 3 роки тому +3

    Anyone else having problems with ? Throwing exception and I have the same imports...

    • @tiagovieira2375
      @tiagovieira2375 3 роки тому +3

      Nvm guys, for those who are having this issue, just restart angular server... if the error persist, restart vscode aswell

    • @basileuskoi
      @basileuskoi 3 роки тому +1

      Thank you!

    • @dadadodo123
      @dadadodo123 3 роки тому +1

      @@tiagovieira2375 thank you so much!

  • @DMG5588
    @DMG5588 3 роки тому +2

    Thank you for this. It was really informative and easy to follow :)

  • @alitswq
    @alitswq 2 роки тому +1

    It helped me a lot because I was familiar with AngularJS. Amazing, on-point tutorial.

  • @hipstersantosh9101
    @hipstersantosh9101 3 роки тому +3

    can you tell me whhat is the theme ? it looks sooo goood!!!?!?

  • @zeinabmoghbel1507
    @zeinabmoghbel1507 3 роки тому +8

    This course is great, this is the best thing that I can imagine, thank you very much and thank GOD.

  • @anshumanSrivastavaHere_I_COME
    @anshumanSrivastavaHere_I_COME 2 роки тому

    I'm starting a new full stack developer position, and i haven't done agnular in a while. I think this is PERFECT for those who need to just dip their toes into this. I knew what was going on due to some prior experience in angular a few years ago. However it's definitely not my strong point as i'm more of a backend developer. THanks again for this. I think the auto generate stuff is quite neat. I remember having to go update the files manually and wondering why my stuff doesn't show up

  • @SirajudeenThinki4
    @SirajudeenThinki4 3 роки тому

    i was just watching Angular 2019 from traversy, just got the updated one . Thank you so much

  • @dawoodahmad8243
    @dawoodahmad8243 3 роки тому +4

    Hi, is anyone helps me out, please, Actually, I got an error after writing this in task-item.component.ts file => @Input() task: Task; Video time 39:08 Here is an error: Property 'task' has no initializer and is not definitely assigned in the constructor. Please help me out with this.

    • @gleisonsubzeroKZ
      @gleisonsubzeroKZ 3 роки тому +6

      This is happening because you've started your project using the strict mode, to get rid of this error you should update your ts.config compiler options and set strictPropertyInitialization to false.

    • @dawoodahmad8243
      @dawoodahmad8243 3 роки тому +1

      @@gleisonsubzeroKZ thanks bro

  • @krtirtho
    @krtirtho 3 роки тому +4

    I see "Ben Awad crying" watching this course😂

    • @TheCodeAngle
      @TheCodeAngle 3 роки тому

      Well said. But I think his videos are geared towards Angular js and not Angular.

  • @joseroldanortiz8540
    @joseroldanortiz8540 3 роки тому

    Thanks very much for the tutorial, It's perfect for me that I am migrating from Angular1.4 to the latest version, waiting for more Angular videos!!

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

    you explain so much better Brad, we need a full course and more projects

  • @IsaacA192
    @IsaacA192 3 роки тому +3

    Anyone getting an error with @input() text:string; TS will throw an error instead do:
    @input() text: string = "";
    Edit: - reason 493578 I hate frameworks - ever changing coding standards
    Anyone getting an error with the @Input() task: Task;
    change it to @Input() task!: Task;

    • @ashiktm4188
      @ashiktm4188 3 роки тому

      it helped thankyou

    • @IsaacA192
      @IsaacA192 3 роки тому

      @@ashiktm4188 No worries.

    • @khushalkalidindi3242
      @khushalkalidindi3242 3 роки тому

      ​@@ashiktm4188 you can also say "task: string | undefined". it is equivalent to "task!: string".

    • @ashiktm4188
      @ashiktm4188 3 роки тому

      @@khushalkalidindi3242 yeah

  • @ellsonmendesYT
    @ellsonmendesYT 2 роки тому +3

    For anyone who is receiving Errors at 26:09 in below declarations
    @Input() text:string;
    @Input() color:string;
    Place an "!" after the name of the variable like this
    @Input() text!:string;
    @Input() color!:string;
    or place this option on tsconfig.json
    "strictPropertyInitialization": false
    Are you following up Lerão?!