[Last updated 6/2024] Angular – The Complete Guide (2024 Edition) (Udemy – Vietsub and Engsub)
About Course
Views
What you’ll learn:
Learn modern Angular, including standalone components & signals from the ground up & in great detail!
Learn how to send HTTP requests, implement routing, authenticate users or handle complex forms – and much more!
Develop modern, complex, responsive and scalable web applications with Angular
Fully understand the architecture behind an Angular application and how to use it
Learn TypeScript, a modern JavaScript superset, along the way
Create single-page or fullstack applications with one of the most modern JavaScript frameworks out there
Use the gained, deep understanding of the Angular fundamentals to quickly establish yourself as a frontend developer
Link gốc:
https://www.udemy.com/course/the-complete-guide-to-angular-2/
Time Course:
55.5 hours (756 Lectures + Documents)
Instructor
: Maximilian Schwarzmüller
Total Weight:
31.43 GB
** Note
:
Chú ý:
Course Content
36 – Authentication & Route Protection in Angular
-
011 Improving Error Handling.mp4
05:39 -
022 Wrap Up.mp4
01:55 -
021 Adding an Auth Guard.mp4
10:56 -
020 Adding Auto-Logout.mp4
07:39 -
019 Adding Auto-Login.mp4
09:54 -
018 Adding Logout.mp4
03:18 -
017 Attaching the Token with an Interceptor.mp4
08:48 -
016 Adding the Token to Outgoing Requests.mp4
10:15 -
015 Reflecting the Auth State in the UI.mp4
09:41 -
014 Creating & Storing the User Data.mp4
10:16 -
013 Login Error Handling.mp4
04:28 -
012 Sending Login Requests.mp4
06:00 -
001 Module Introduction.mp4
00:52 -
010 Adding a Loading Spinner & Error Handling Logic.mp4
06:34 -
010 Adding a Loading Spinner & Error Handling Logic.mp4
06:34 -
009 Sending the Signup Request.mp4
04:36 -
008 Preparing the Signup Request.mp4
08:24 -
008 Preparing the Signup Request.mp4
08:24 -
006 Preparing the Backend.mp4
03:14 -
005 Handling Form Input.mp4
03:43 -
004 Switching Between Auth Modes.mp4
04:02 -
003 Adding the Auth Page.mp4
06:44 -
002 How Authentication Works.mp4
05:01
25 – Using Services & Dependency Injection [Angular 16]
-
001 Module Introduction.mp4
01:39 -
002 Why would you Need Services.mp4
02:04 -
003 Creating a Logging Service.mp4
03:32 -
004 Injecting the Logging Service into Components.mp4
06:21 -
006 Creating a Data Service.mp4
06:41 -
007 Understanding the Hierarchical Injector.mp4
02:40 -
008 How many Instances of Service Should It Be.mp4
02:12 -
009 Injecting Services into Services.mp4
05:13 -
010 Using Services for Cross-Component Communication.mp4
04:06 -
012 [OPTIONAL] Assignment Solution.mp4
09:37
26 – Course Project – Services & Dependency Injection [Angular 16]
-
001 Introduction.mp4
01:23 -
002 Setting up the Services.mp4
01:14 -
003 Managing Recipes in a Recipe Service.mp4
04:07 -
004 Using a Service for Cross-Component Communication.mp4
05:07 -
005 Adding the Shopping List Service.mp4
05:04 -
006 Using Services for Pushing Data from A to B.mp4
03:08 -
007 Adding Ingredients to Recipes.mp4
03:41 -
008 Passing Ingredients from Recipes to the Shopping List (via a Service).mp4
07:03
27 – Changing Pages with Routing [Angular 16]
-
016 Practicing and some Common Gotchas.mp4
06:07 -
031 Wrap Up.mp4
00:51 -
030 Understanding Location Strategies.mp4
04:43 -
029 Resolving Dynamic Data with the resolve Guard.mp4
09:53 -
028 Passing Static Data to a Route.mp4
05:56 -
027 Controlling Navigation with canDeactivate.mp4
12:28 -
026 Using a Fake Auth Service.mp4
01:43 -
025 Protecting Child (Nested) Routes with canActivateChild.mp4
02:51 -
024 Protecting Routes with canActivate.mp4
08:55 -
023 An Introduction to Guards.mp4
01:45 -
022 Outsourcing the Route Configuration.mp4
04:40 -
020 Redirecting and Wildcard Routes.mp4
04:36 -
019 Configuring the Handling of Query Parameters.mp4
01:50 -
018 Using Query Parameters – Practice.mp4
05:36 -
017 Setting up Child (Nested) Routes.mp4
04:28 -
001 Module Introduction.mp4
01:26 -
015 Retrieving Query Parameters and Fragments.mp4
03:15 -
014 Passing Query Parameters and Fragments.mp4
05:53 -
013 An Important Note about Route Observables.mp4
02:42 -
012 Fetching Route Parameters Reactively.mp4
07:25 -
011 Fetching Route Parameters.mp4
04:01 -
010 Passing Parameters to Routes.mp4
03:10 -
009 Using Relative Paths in Programmatic Navigation.mp4
05:09 -
008 Navigating Programmatically.mp4
03:27 -
007 Styling Active Router Links.mp4
05:01 -
006 Understanding Navigation Paths.mp4
04:54 -
005 Navigating with Router Links.mp4
05:18 -
004 Setting up and Loading Routes.mp4
08:01 -
002 Why do we need a Router.mp4
01:15
28 – Course Project – Routing [Angular 16]
-
001 Planning the General Structure.mp4
01:36 -
002 Setting Up Routes.mp4
07:58 -
003 Adding Navigation to the App.mp4
01:41 -
004 Marking Active Routes.mp4
01:30 -
005 Fixing Page Reload Issues.mp4
02:51 -
006 Child Routes Challenge.mp4
01:54 -
007 Adding Child Routing Together.mp4
04:21 -
008 Configuring Route Parameters.mp4
06:22 -
009 Passing Dynamic Parameters to Links.mp4
03:01 -
010 Styling Active Recipe Items.mp4
01:14 -
011 Adding Editing Routes.mp4
03:44 -
012 Retrieving Route Parameters.mp4
03:18 -
013 Programmatic Navigation to the Edit Page.mp4
04:46 -
014 One Note about Route Observables.mp4
00:52
29 – Understanding Observables [Angular 16]
-
001 Module Introduction.mp4
04:25 -
003 Analyzing Angular Observables.mp4
02:15 -
004 Getting Closer to the Core of Observables.mp4
06:50 -
005 Building a Custom Observable.mp4
04:46 -
006 Errors & Completion.mp4
06:39 -
007 Observables & You!.mp4
01:55 -
008 Understanding Operators.mp4
08:39 -
009 Subjects.mp4
08:17 -
010 Wrap Up.mp4
01:15
30 – Course Project – Observables [Angular 16]
-
001 Improving the Reactive Service with Observables (Subjects).mp4
06:04
31 – Handling Forms in Angular Apps [Angular 16]
-
027 Reactive Grouping Controls.mp4
03:46 -
019 TD Resetting Forms.mp4
01:47 -
020 Introduction to the Reactive Approach.mp4
00:40 -
021 Reactive Setup.mp4
02:26 -
022 Reactive Creating a Form in Code.mp4
04:07 -
023 Reactive Syncing HTML and Form.mp4
03:58 -
024 Reactive Submitting the Form.mp4
02:15 -
025 Reactive Adding Validation.mp4
02:50 -
026 Reactive Getting Access to Controls.mp4
03:47 -
018 TD Using Form Data.mp4
04:44 -
029 Reactive Arrays of Form Controls (FormArray).mp4
07:30 -
030 Reactive Creating Custom Validators.mp4
06:11 -
031 Reactive Using Error Codes.mp4
03:19 -
032 Reactive Creating a Custom Async Validator.mp4
04:37 -
033 Reactive Reacting to Status or Value Changes.mp4
02:11 -
034 Reactive Setting and Patching Values.mp4
02:09 -
035 [OPTIONAL] Assignment Solution.mp4
13:48 -
001 Module Introduction.mp4
01:19 -
017 TD Setting and Patching Form Values.mp4
04:42 -
016 TD Handling Radio Buttons.mp4
03:27 -
015 TD Grouping Form Controls.mp4
03:30 -
014 TD Using ngModel with Two-Way-Binding.mp4
02:48 -
013 TD Set Default Values with ngModel Property Binding.mp4
02:15 -
012 TD Outputting Validation Error Messages.mp4
02:23 -
011 TD Using the Form State.mp4
04:26 -
009 TD Adding Validation to check User Input.mp4
04:13 -
008 TD Accessing the Form with @ViewChild.mp4
03:03 -
007 TD Understanding Form State.mp4
02:29 -
006 TD Submitting and Using the Form.mp4
06:15 -
005 TD Creating the Form and Registering the Controls.mp4
05:42 -
004 An Example Form.mp4
01:32 -
003 Template-Driven (TD) vs Reactive Approach.mp4
01:15 -
002 Why do we Need Angular’s Help.mp4
02:21
32 – Course Project – Forms [Angular 16]
-
011 Creating the Form For Editing Recipes.mp4
05:06 -
022 Deleting Ingredients and Some Finishing Touches.mp4
03:34 -
021 Providing the Recipe Service Correctly.mp4
01:58 -
020 Adding an Image Preview.mp4
01:48 -
019 Redirecting the User (after Deleting a Recipe).mp4
01:47 -
018 Adding a Delete and Clear (Cancel) Functionality.mp4
04:46 -
017 Submitting the Recipe Edit Form.mp4
07:30 -
016 Validating User Input.mp4
05:10 -
015 Adding new Ingredient Controls.mp4
03:38 -
014 Adding Ingredient Controls to a Form Array.mp4
05:39 -
012 Syncing HTML with the Form.mp4
03:52 -
001 Introduction.mp4
00:59 -
010 Creating the Template for the (Reactive) Recipe Edit Form.mp4
04:59 -
009 Allowing the Deletion of Shopping List Items.mp4
02:52 -
008 Allowing the the User to Clear (Cancel) the Form.mp4
01:16 -
007 Resetting the Form.mp4
02:34 -
006 Updating existing Items.mp4
03:15 -
005 Loading the Shopping List Items into the Form.mp4
03:02 -
004 Allowing the Selection of Items in the List.mp4
04:24 -
003 Adding Validation to the Form.mp4
02:21 -
002 TD Adding the Shopping List Form.mp4
03:42
33 – Using Pipes to Transform Output [Angular 16]
-
001 Introduction & Why Pipes are Useful.mp4
02:01 -
002 Using Pipes.mp4
03:28 -
003 Parametrizing Pipes.mp4
02:10 -
004 Where to learn more about Pipes.mp4
01:56 -
005 Chaining Multiple Pipes.mp4
02:20 -
006 Creating a Custom Pipe.mp4
06:42 -
007 Parametrizing a Custom Pipe.mp4
02:36 -
008 Example Creating a Filter Pipe.mp4
07:01 -
009 Pure and Impure Pipes (or How to fix the Filter Pipe).mp4
04:46 -
010 Understanding the async Pipe.mp4
04:03
34 – Making Http Requests [Angular 16]
-
014 Sending a DELETE Request.mp4
03:27 -
027 Wrap Up.mp4
01:57 -
026 Multiple Interceptors.mp4
04:52 -
025 Response Interceptors.mp4
02:46 -
024 Manipulating Request Objects.mp4
02:32 -
023 Introducing Interceptors.mp4
07:24 -
022 Changing the Response Body Type.mp4
03:15 -
021 Observing Different Types of Responses.mp4
07:32 -
020 Adding Query Params.mp4
04:01 -
019 Setting Headers.mp4
03:18 -
018 Error Handling & UX.mp4
02:07 -
017 Using the catchError Operator.mp4
02:13 -
016 Using Subjects for Error Handling.mp4
02:39 -
015 Handling Errors.mp4
06:38 -
001 A New IDE.mp4
00:43 -
013 Services & Components Working Together.mp4
03:28 -
012 Using a Service for Http Requests.mp4
06:37 -
011 Showing a Loading Indicator.mp4
02:03 -
010 Outputting Posts.mp4
02:15 -
009 Using Types with the HttpClient.mp4
05:07 -
008 Using RxJS Operators to Transform Response Data.mp4
03:59 -
007 GETting Data.mp4
02:56 -
006 Sending a POST Request.mp4
10:10 -
005 Backend (Firebase) Setup.mp4
02:34 -
004 The Anatomy of a Http Request.mp4
02:27 -
003 How Does Angular Interact With Backends.mp4
03:09 -
002 Module Introduction.mp4
01:06
35 – Course Project – Http [Angular 16]
-
001 Module Introduction.mp4
00:55 -
002 Backend (Firebase) Setup.mp4
02:03 -
003 Setting Up the DataStorage Service.mp4
05:32 -
004 Storing Recipes.mp4
06:39 -
005 Fetching Recipes.mp4
05:38 -
006 Transforming Response Data.mp4
04:17 -
007 Resolving Data Before Loading.mp4
07:31 -
008 Fixing a Bug with the Resolver.mp4
01:43
24 – Course Project – Directives [Angular 16]
-
001 Building and Using a Dropdown Directive.mp4
06:25
37 – Dynamic Components [Angular 16]
-
001 Module Introduction.mp4
01:09 -
002 Adding an Alert Modal Component.mp4
07:33 -
003 Understanding the Different Approaches.mp4
02:28 -
004 Using ngIf.mp4
03:05 -
005 Preparing Programmatic Creation.mp4
08:27 -
006 Creating a Component Programmatically.mp4
04:46 -
008 Understanding entryComponents.mp4
05:06 -
009 Data Binding & Event Binding.mp4
05:05 -
010 Wrap Up.mp4
01:25
38 – Angular Modules & Optimizing Angular Apps [Angular 16]
-
009 Understanding Shared Modules.mp4
08:10 -
017 Loading Services Differently.mp4
08:23 -
016 Modules & Services.mp4
05:46 -
015 Preloading Lazy-Loaded Code.mp4
03:39 -
014 More Lazy Loading.mp4
03:02 -
013 Implementing Lazy Loading.mp4
12:19 -
012 Understanding Lazy Loading.mp4
02:52 -
011 Adding an Auth Feature Module.mp4
04:22 -
010 Understanding the Core Module.mp4
05:48 -
001 Module Introduction.mp4
00:41 -
008 The ShoppingList Feature Module.mp4
04:27 -
007 Component Declarations.mp4
01:58 -
006 Adding Routes to Feature Modules.mp4
04:34 -
005 Splitting Modules Correctly.mp4
04:09 -
004 Getting Started with Feature Modules.mp4
08:59 -
003 Analyzing the AppModule.mp4
06:24 -
002 What are Modules.mp4
02:26
39 – Standalone Components
-
001 Module Introduction.mp4
01:27 -
002 Starting Setup & Why We Want Standalone Components.mp4
04:48 -
003 Building a First Standalone Component.mp4
09:49 -
005 Standalone Directives & Connecting Building Blocks.mp4
02:19 -
006 Migrating Another Component.mp4
01:49 -
007 A Standalone Root Component.mp4
04:20 -
008 Services & Standalone Components.mp4
03:58 -
009 Routing with Standalone Components.mp4
06:36 -
010 Lazy Loading.mp4
08:04 -
011 Summary.mp4
01:56
40 – Angular Signals
-
001 Module Introduction.mp4
01:08 -
002 Signals What & Why.mp4
05:40 -
003 Creating a New Signal.mp4
03:23 -
004 Updating a Signal Value.mp4
02:33 -
005 Reading & Outputting a Signal Value.mp4
02:11 -
006 Signal Updating set(), update() & mutate().mp4
06:12 -
007 Important Signals are NOT Finished Yet!.mp4
01:02 -
009 Computed Values & Effects.mp4
03:48 -
010 Module Summary.mp4
00:55
41 – Bonus Using NgRx For State Management
-
011 Handling Actions Without createReducer.mp4
06:01 -
021 Summary.mp4
03:01 -
020 Adding a Second Effect.mp4
09:57 -
019 Using Store Data In Effects.mp4
03:24 -
018 The Old @Effect Decorator & Registering Effects.mp4
03:43 -
017 Defining a First Effect.mp4
08:40 -
016 Installing the Effects Package.mp4
02:03 -
015 Introducing Effects.mp4
02:39 -
014 Exploring Selectors.mp4
08:17 -
013 Time To Practice A Second Action.mp4
05:28 -
012 An Alternative Way Of Defining Actions.mp4
10:02 -
001 Module Introduction.mp4
00:57 -
010 Attaching Data To Actions.mp4
04:20 -
009 Dispatching Actions.mp4
03:41 -
008 Introducing Actions & State Changing Reducers.mp4
07:48 -
007 Reading Data From The Store.mp4
09:36 -
006 An Alternative Way Of Creating Reducers.mp4
04:19 -
005 Adding a First Reducer & Store Setup.mp4
08:35 -
004 Project Setup & Installing NgRx.mp4
05:12 -
003 Understanding NgRx & Its Building Blocks.mp4
03:58 -
002 What Is NgRx.mp4
02:08
42 – Angular Animations
-
002 Introduction.mp4
01:03 -
003 Setting up the Starting Project.mp4
00:52 -
004 Animations Triggers and State.mp4
07:11 -
005 Switching between States.mp4
02:04 -
006 Transitions.mp4
01:54 -
007 Advanced Transitions.mp4
05:21 -
008 Transition Phases.mp4
03:57 -
009 The void State.mp4
06:10 -
010 Using Keyframes for Animations.mp4
05:32 -
011 Grouping Transitions.mp4
02:11 -
012 Using Animation Callbacks.mp4
02:38
43 – Adding Offline Capabilities with Service Workers
-
001 Module Introduction.mp4
02:09 -
002 Adding Service Workers.mp4
12:41 -
003 Caching Assets for Offline Use.mp4
05:28 -
004 Caching Dynamic Assets & URLs.mp4
07:02
44 – A Basic Introduction to Unit Testing in Angular Apps
-
002 Introduction.mp4
01:18 -
003 Why Unit Tests.mp4
02:12 -
004 Analyzing the Testing Setup (as created by the CLI).mp4
08:01 -
005 Running Tests (with the CLI).mp4
01:59 -
006 Adding a Component and some fitting Tests.mp4
06:14 -
007 Testing Dependencies Components and Services.mp4
06:55 -
008 Simulating Async Tasks.mp4
09:41 -
009 Using fakeAsync and tick.mp4
02:14 -
010 Isolated vs Non-Isolated Tests.mp4
06:10
45 – Angular as a Platform & Closer Look at the CLI
-
001 Module Introduction.mp4
01:43 -
002 A Closer Look at ng new.mp4
05:18 -
003 IDE & Project Setup.mp4
02:31 -
004 Understanding the Config Files.mp4
09:01 -
005 Important CLI Commands.mp4
05:25 -
006 The angular.json File – A Closer Look.mp4
11:18 -
007 Angular Schematics – An Introduction.mp4
01:41 -
008 The ng add Command.mp4
04:31 -
009 Using Custom ng generate Schematics.mp4
03:05 -
010 Smooth Updating of Projects with ng update.mp4
02:13 -
011 Simplified Deployment with ng deploy.mp4
05:46 -
012 Understanding Differential Loading.mp4
05:10 -
013 Managing Multiple Projects in One Folder.mp4
04:35 -
014 Angular Libraries – An Introduction.mp4
02:51 -
015 Wrap Up.mp4
01:27
46 – Bonus TypeScript Introduction (for Angular 2 Usage)
-
001 Module Introduction.mp4
01:14 -
002 What & Why.mp4
06:32 -
003 Installing & Using TypeScript.mp4
06:22 -
004 Base Types & Primitives.mp4
03:55 -
005 Array & Object Types.mp4
05:33 -
006 Type Inference.mp4
02:47 -
007 Working with Union Types.mp4
02:47 -
008 Assigning Type Aliases.mp4
02:42 -
009 Diving into Functions & Function Types.mp4
05:12 -
010 Understanding Generics.mp4
07:20 -
011 Classes & TypeScript.mp4
07:58 -
012 Working with Interfaces.mp4
05:36 -
013 Configuring the TypeScript Compiler.mp4
02:29
13 – Handling User Input & Working with Forms (Template-driven & Reactive)
-
013 Handling Form Submission (Reactive Forms).mp4
03:15 -
025 Module Summary.mp4
01:30 -
024 Creating Multi-Input Validators Form Group Validators.mp4
07:50 -
023 Practice Adding More Validation.mp4
03:31 -
022 Working with Form Arrays.mp4
04:44 -
021 Working with Nested Form Groups.mp4
05:29 -
020 Connecting & Registering Inputs For A Complex Form.mp4
08:57 -
019 Exercise Solution.mp4
04:37 -
018 Exercise Problem.mp4
02:18 -
017 Interacting with the Form Programmatically.mp4
08:38 -
016 Creating & Using Async Validators.mp4
03:54 -
015 Building Custom Validators.mp4
05:21 -
014 Adding Validators To Reactive Forms.mp4
06:35 -
001 Module Introduction.mp4
02:27 -
012 Syncing Reactive Form Definition & Template.mp4
03:36 -
011 Reactive Forms Getting Started.mp4
05:18 -
010 Updating Form Values Programmatically.mp4
05:29 -
009 Interacting With The Underlying Form Object In The Component.mp4
13:10 -
008 Adding Validation Styles.mp4
04:45 -
007 Using the Form Validation Status To Provide User Feedback.mp4
07:33 -
006 Validating Input with Form Validation Directives.mp4
06:09 -
005 Extracting User Input Values.mp4
02:45 -
004 Getting Access to the Angular-managed Form.mp4
08:31 -
003 Template-driven Registering Form Controls.mp4
06:00 -
002 Template-driven vs Reactive Forms.mp4
02:53
02 – Angular Essentials – Components, Templates, Services & More
-
043 Managing The New Task Dialog.mp4
06:30 -
030 TypeScript Working With Potentially Undefined Values & Union Types.mp4
08:06 -
031 Accepting Objects As Inputs & Adding Appropriate Typings.mp4
04:46 -
032 TypeScript Type Aliases & Interfaces.mp4
03:10 -
033 Outputting List Content.mp4
05:33 -
034 Outputting Conditional Content.mp4
04:26 -
035 Legacy Angular Using ngFor & ngIf.mp4
05:21 -
036 Adding More Components to the Demo App.mp4
06:14 -
037 Outputting User-specific Tasks.mp4
06:30 -
038 Outputting Task Data in the Task Component.mp4
04:04 -
039 Storing Data Models in Separate Files.mp4
03:43 -
040 Dynamic CSS Styling with Class Bindings.mp4
04:36 -
041 More Component Communication Deleting Tasks.mp4
05:25 -
042 Creating & Conditionally Rendering Another Component.mp4
05:24 -
029 Exercise Create a Configurable Component.mp4
08:47 -
044 Using Directives & Two-Way-Binding.mp4
10:46 -
045 Signals & Two-Way-Binding.mp4
02:19 -
046 Handling Form Submission.mp4
03:20 -
047 Using the Submitted Data.mp4
07:20 -
048 Content Projection with ng-content.mp4
06:47 -
049 Transforming Template Data with Pipes.mp4
03:16 -
050 Getting Started with Services.mp4
06:15 -
051 Getting Started with Dependency Injection.mp4
08:02 -
052 More Service Usage & Alternative Dependency Injection Mechanism.mp4
05:17 -
053 Time to Practice Services.mp4
03:16 -
054 Using localStorage for Data Storage.mp4
05:40 -
055 Module Summary.mp4
08:44 -
016 Using Getters For Computed Values.mp4
03:29 -
002 A New Starting Project & Analyzing The Project Structure.mp4
06:27 -
003 Understanding Components & How Content Ends Up On The Screen.mp4
06:17 -
004 Creating a First Custom Component.mp4
05:14 -
006 Configuring the Custom Component.mp4
05:20 -
007 Using the Custom Component.mp4
06:08 -
008 Styling the Header Component & Adding An Image.mp4
06:20 -
009 Managing & Creating Components with the Angular CLI.mp4
04:28 -
010 Styling & Using Our Next Custom Component.mp4
05:08 -
011 Preparing User Data (To Output Dynamic Content).mp4
02:06 -
012 Storing Data in a Component Class.mp4
03:54 -
013 Outputting Dynamic Content with String Interpolation.mp4
02:30 -
014 Property Binding & Outputting Computed Values.mp4
04:37 -
001 Module Introduction.mp4
01:18 -
017 Listening to Events with Event Binding.mp4
04:04 -
018 Managing State & Changing Data.mp4
03:06 -
019 A Look Behind The Scenes Of Angular’s Change Detection Mechanism.mp4
02:06 -
020 Introducing Signals.mp4
12:52 -
021 We Need More Flexible Components!.mp4
03:40 -
022 Defining Component Inputs.mp4
08:17 -
023 Required & Optional Inputs.mp4
02:56 -
024 Using Signal Inputs.mp4
13:59 -
025 We Need Custom Events!.mp4
01:47 -
026 Working with Outputs & Emitting Data.mp4
06:58 -
027 Using the output() Function.mp4
06:12 -
028 Adding Extra Type Information To EventEmitter.mp4
01:57
03 – Angular Essentials – Working with Modules
-
001 Module Introduction.mp4
02:16 -
002 A First Introduction To Angular Modules (NgModule).mp4
03:05 -
003 Creating a First Empty Module.mp4
02:55 -
004 Bootstrapping Apps with Angular Modules.mp4
05:21 -
005 Declaring & Using Components.mp4
04:45 -
006 A First Summary.mp4
02:14 -
007 Migrating All Components To Use Modules.mp4
06:50 -
008 Creating & Using Shared Modules.mp4
04:12 -
009 Creating More Complex Module-based App Structures.mp4
07:22
04 – Angular Essentials – Time To Practice
-
001 Module Introduction & Starting Project.mp4
05:19 -
003 Adding a Header Component With An Image.mp4
05:10 -
004 Adding a User Input Component.mp4
06:42 -
005 Handling Form Submission.mp4
02:29 -
006 Extracting Values with Two-Way-Binding.mp4
08:10 -
007 Calculating the Annual Investment Data.mp4
05:04 -
008 Cross-Component Communication with Outputs.mp4
09:25 -
009 Creating & Using a Data Model.mp4
02:58 -
010 Passing Data from Parent to Child with Inputs.mp4
10:09 -
011 Outputting Data in a Table.mp4
04:57 -
012 Formatting Output with a Pipe.mp4
01:39 -
013 Using Signals & Resetting The Form After Submission.mp4
09:55 -
014 Using a Service for Cross-Component Communication.mp4
09:35 -
015 Using Signals in Services.mp4
04:11 -
016 Migrating to Angular Modules.mp4
08:08 -
017 Module Summary.mp4
01:13
05 – Debugging Angular Apps
-
001 Module Introduction.mp4
01:41 -
002 Understanding Error Messages & Fixing Errors.mp4
03:46 -
003 Debugging Logical Errors with the Browser DevTools & Breakpoints.mp4
06:19 -
004 Exploring the Angular DevTools.mp4
03:50
06 – Components & Templates – Deep Dive
-
040 A Closer Look at Decorator-based Queries & Lifecycle Hooks.mp4
04:57 -
028 Introducing the Component Lifecycle ngOnInit.mp4
04:02 -
029 Implementing Lifecycle Interfaces.mp4
03:11 -
030 Component Lifecycle – A Deep Dive.mp4
15:16 -
031 Component Cleanup with ngOnDestroy.mp4
04:07 -
032 Component Cleanup with DestroyRef.mp4
02:47 -
033 Handling Form Submissions Repetition.mp4
02:46 -
034 Working with Template Variables.mp4
07:13 -
035 Extracting Input Values via Template Variables.mp4
01:54 -
036 Template Variables & Component Instances.mp4
02:35 -
037 Getting Access to Template Elements via ViewChild.mp4
09:27 -
038 Using The viewChild Signal Function.mp4
06:22 -
039 ViewChild vs ContentChild.mp4
06:58 -
027 Manipulating State & Using Literal Values.mp4
04:41 -
041 The afterRender and afterNextRender Lifecycle Functions.mp4
03:08 -
042 Making Sense of Signal Effects.mp4
05:28 -
044 TypeScript & Type Models Repetition.mp4
03:31 -
045 Component Outputs Repetition.mp4
04:23 -
046 A Closer Look At Template For Loops.mp4
05:53 -
047 Revisiting Inputs & Signals.mp4
05:00 -
048 Updating Signal Values.mp4
04:50 -
049 Cross-Component Communication & State Management.mp4
06:13 -
050 Configuring Component Inputs & Outputs.mp4
04:06 -
051 Two-Way Binding Repetition.mp4
03:54 -
052 Setting Up Custom Two-Way Binding.mp4
08:54 -
053 An Easier Way of Setting Up Custom Two-Way Binding.mp4
03:53 -
014 Defining Content Projection Fallbacks.mp4
02:09 -
002 Starting Project & An Opportunity For Smaller Components.mp4
02:34 -
003 When & How To Split Up Components.mp4
04:25 -
004 Splitting A Component Into Multiple Components.mp4
08:45 -
005 Creating Reusable Components.mp4
03:58 -
006 Component Inputs Repetition.mp4
05:22 -
007 Property Binding Repetition.mp4
08:31 -
008 Using Content Projection & ng-content.mp4
02:57 -
009 Adding Forms to Components.mp4
06:01 -
010 A Possible, But Not Ideal Way Of Extending Built-in Elements.mp4
04:27 -
011 Extending Built-in Elements with Custom Components via Attribute Selectors.mp4
05:08 -
012 Supporting Content Projection with Multiple Slots.mp4
06:32 -
013 Exploring Advanced Content Projection.mp4
03:10 -
001 Module Introduction.mp4
02:00 -
015 Multi-Element Custom Components & Content Projection.mp4
07:28 -
016 Scoping CSS Styles to Components.mp4
05:03 -
017 Understanding & Configuring View Encapsulation.mp4
05:21 -
018 Making Sense of Component Host Elements.mp4
02:52 -
019 Using Host Elements Like Regular Elements.mp4
04:30 -
020 Interacting With Host Elements From Inside Components.mp4
02:05 -
021 When (Not) To Rely On Host Elements.mp4
06:08 -
022 Interacting with Host Elements via @HostListener & @HostBinding.mp4
05:14 -
023 Accessing Host Elements Programmatically.mp4
04:03 -
024 Class Bindings Repetition.mp4
04:24 -
025 There’s More Than One Way Of Binding CSS Classes Dynamically.mp4
03:16 -
026 A Closer Look At Dynamic Inline Style Binding.mp4
03:30
07 – Enhancing Elements with Directives – Deep Dive
-
001 Module Introduction.mp4
01:03 -
002 Understanding Directives.mp4
02:57 -
003 The Starting Project.mp4
01:04 -
004 Analyzing a Built-in Attribute Directive ngModel.mp4
05:41 -
005 Analyzing a Built-in Structural Directive ngIf.mp4
06:29 -
006 Getting Started with Custom Directives.mp4
08:10 -
007 Using Attribute Directives To Change Element Behavior.mp4
04:47 -
008 Working with Inputs in Custom Directives.mp4
08:51 -
009 Directives & Dependency Injection.mp4
04:09 -
010 Building Another Directive.mp4
07:56 -
011 Building a Custom Structural Directive.mp4
08:22 -
012 Structural Directives & Syntactic Sugar.mp4
03:07 -
013 Host Directives & Composition.mp4
07:59
08 – Transforming Values with Pipes – Deep Dive
-
001 Module Introduction.mp4
00:35 -
002 Making Sense of Pipes.mp4
02:55 -
003 Using Built-in Pipes.mp4
02:56 -
004 More Built-in Pipes Examples.mp4
04:18 -
005 Building a First Custom Pipe.mp4
05:57 -
006 Using Custom Pipes to Perform Custom Transformations.mp4
03:49 -
007 Accepting Parameters in Custom Pipes.mp4
05:56 -
008 Chaining Pipes & Being Aware of Limitations.mp4
04:44 -
009 Building a Pipe That Sorts Items.mp4
06:44 -
010 Understanding How Pipes Are Executed.mp4
04:14 -
011 Pure & Impure Pipes.mp4
01:44 -
012 Pipe Limitations & When Not To Use Them.mp4
02:53
09 – Understanding Services & Dependency Injection – Deep Dive
-
010 Providing Services via the Element Injector.mp4
03:16 -
018 Working with Services Without Using Signals.mp4
02:16 -
017 Angular Modules (NgModule) & Dependency Injection.mp4
03:05 -
016 Injecting Other Values (NOT Services).mp4
10:25 -
015 Preparing A Non-Class Value For Injection.mp4
05:24 -
014 Using Custom DI Tokens & Providers.mp4
08:26 -
013 Analyzing Dependency Injection with the Angular DevTools.mp4
02:29 -
012 Injecting Services Into Services.mp4
05:26 -
011 Understanding the Element Injector’s Behavior.mp4
03:44 -
001 Module Introduction.mp4
00:58 -
009 There Are Multiple Ways Of Providing a Service.mp4
04:16 -
008 Angular Has Multiple Injectors!.mp4
04:23 -
007 Outsourcing & Reusing Logic with Services.mp4
10:55 -
006 Using The Alternative Dependency Injection Syntax.mp4
05:27 -
005 Using Angular’s Dependency Injection Mechanism.mp4
05:01 -
004 How NOT To Provide A Service.mp4
02:23 -
003 Creating a Service.mp4
07:27 -
002 The Starting Project & The Need For A Centralized Service.mp4
03:14
10 – Making Sense of Change Detection – Deep Dive
-
001 Module Introduction.mp4
01:52 -
002 Analyzing the Starting Project.mp4
01:52 -
003 Understanding How Angular Performs Change Detection.mp4
04:44 -
004 Change Detection During Development ExpressionChangedAfterChecked Errors.mp4
02:45 -
005 Writing Efficient Template Bindings.mp4
01:19 -
006 Avoiding Zone Pollution.mp4
05:17 -
007 Using the OnPush Strategy.mp4
03:21 -
008 Understanding the OnPush Strategy.mp4
08:37 -
009 Working with OnPush & Signals.mp4
02:13 -
010 Using Signals for Sharing Data Across Components (with OnPush).mp4
04:11 -
011 The Problem With OnPush, Cross-Component Data & Not Using Signals.mp4
03:12 -
012 Triggering Change Detection Manually & Using RxJS Subjects.mp4
11:01 -
013 Introducing The async Pipe.mp4
04:32 -
014 Going Zoneless!.mp4
12:58
11 – Working with RxJS (Observables) – Deep Dive
-
001 Module Introduction.mp4
00:52 -
002 What Are Observables & What Is RxJS.mp4
01:07 -
003 Creating & Using an Observable.mp4
09:17 -
004 Working with RxJS Operators.mp4
05:34 -
005 Working with Signals.mp4
05:12 -
006 Signals vs Observables.mp4
06:00 -
007 Converting Signals To Observables.mp4
03:49 -
008 Converting Observables To Signals.mp4
04:53 -
009 Deep Dive Creating & Using A Custom Observable From Scratch.mp4
12:24 -
010 Module Summary.mp4
02:38
12 – Sending HTTP Requests & Handling Responses
-
013 More Data Fetching & Some Code Duplication.mp4
04:34 -
023 Introducing HTTP Response Interceptors.mp4
03:02 -
021 Introducing HTTP Interceptors.mp4
06:57 -
020 Practice Sending DELETE Requests.mp4
08:24 -
019 Implementing App-wide Error Management.mp4
11:10 -
018 Improved Optimistic Updating.mp4
05:09 -
017 Potential Problems Introduced by Optimistic Updating.mp4
02:06 -
016 Implementing Optimistic Updating.mp4
02:41 -
015 Managing HTTP-loaded Data via a Service.mp4
04:53 -
014 Outsourcing HTTP Request Logic Into A Service.mp4
08:57 -
001 Module Introduction.mp4
01:28 -
012 Sending Data To A Backend.mp4
07:09 -
011 Handling HTTP Errors.mp4
10:45 -
010 Showing a Loading Fallback.mp4
03:11 -
009 Transforming & Using Response Data.mp4
02:51 -
008 Configuring Http Requests.mp4
03:39 -
007 Sending a GET Request To Fetch Data.mp4
07:53 -
005 Getting Started with Angular’s Http Client.mp4
04:23 -
003 How To Connect Angular Apps To A Backend.mp4
04:02 -
002 The Starting Projects Frontend & Backend.mp4
04:42
01 – Getting Started
-
01:31
-
01:49
-
003 Why Would You Use Angular.mp4
06:41 -
004 Angular’s Evolution & Stability.mp4
04:43 -
005 Creating A New Angular Project.mp4
07:02 -
006 Setting Up An Angular Development Environment.mp4
04:48 -
007 About This Course.mp4
03:18
14 – Routing & Building Multi-page Single Page Applications
-
018 Redirecting Users.mp4
05:09 -
035 Reloading Pages via the Angular Router & Configuring Programmatic Navigation.mp4
05:46 -
034 Improving The CanDeactivate Logic.mp4
02:59 -
033 Making Sense of The CanDeactivate Guard.mp4
04:56 -
031 Introducing Route Guards.mp4
09:18 -
030 Setting & Resolving Titles.mp4
04:14 -
029 Controlling Route Resolver Execution.mp4
03:08 -
028 Accessing Route Data In Components.mp4
02:46 -
026 Resolving Route-related Dynamic Data.mp4
11:22 -
025 Adding Static Data To Routes.mp4
05:06 -
024 Using Query Parameters For Data Manipulation.mp4
03:37 -
023 Extracting Query Parameters via Observables.mp4
03:22 -
022 Extracting Query Parameters via Inputs.mp4
03:16 -
021 Setting Query Parameters.mp4
05:35 -
020 Activated Route vs Activated Route Snapshot.mp4
03:38 -
019 Splitting Route Definitions Across Multiple Files.mp4
02:50 -
001 Module Introduction.mp4
01:57 -
017 Adding A Not Found Route.mp4
01:46 -
016 Link Shortcuts & Programmatic Navigation.mp4
06:36 -
015 Loading Data Based On Route Parameters In Child Routes.mp4
02:14 -
014 Accessing Parent Route Data From Inside Nested Routes.mp4
04:32 -
013 Route Links & Relative Links.mp4
02:34 -
012 Working with Nested Routes.mp4
05:30 -
011 Extracting Dynamic Route Parameters via Observables.mp4
07:59 -
009 Extracting Dynamic Route Parameters via Inputs.mp4
05:33 -
008 Setting Up & Navigating To Dynamic Routes.mp4
07:23 -
007 Styling Active Navigation Links.mp4
02:53 -
006 Adding Links The Right Way.mp4
05:50 -
005 Registering Multiple Routes.mp4
03:14 -
004 Rendering Routes.mp4
03:34 -
003 Enabling Routing & Adding a First Route.mp4
06:15 -
002 What Is Routing.mp4
02:35
15 – Code Splitting & Deferrable Views
-
001 Module Introduction.mp4
01:04 -
002 What Is Lazy Loading Code Splitting.mp4
01:36 -
003 Introducing Route-based Lazy Loading.mp4
02:49 -
004 Implementing Route-based Lazy Loading.mp4
08:14 -
005 Lazy Loading Entire Route Groups.mp4
05:19 -
006 Using Lazy Loading & Routing to Lazy-load Services.mp4
03:57 -
007 Introducing Deferrable Views.mp4
03:09 -
008 Defer Loading Until Viewport Visibility.mp4
03:47 -
009 Deferrable Views Using Other Triggers.mp4
01:36 -
010 Prefetching Lazy-loaded Code.mp4
01:59 -
011 Deferrable Views Summary.mp4
02:06
16 – Deploying Angular Apps – CSR, SSR, SGA
-
001 Module Introduction.mp4
01:08 -
003 Preparing a Project For Deployment Building It For Production.mp4
04:56 -
004 Building SPAs Pros & Cons.mp4
03:42 -
005 SPAs Deployment Example.mp4
07:54 -
006 Using ng add, ng deploy & Angular’s Built-in Deployment Support.mp4
02:16 -
007 Server-side Rendering (SSR) Introduction.mp4
03:39 -
008 Setting Up SSR For An Angular App.mp4
04:12 -
009 Building and Service an SSR App.mp4
02:36 -
010 Authoring SSR-ready Code (Beware of Pitfalls!).mp4
03:53 -
011 SSR and Client-Server Mismatches.mp4
03:37 -
012 Static Site Generation (SSG) Introduction.mp4
02:55 -
013 Configuring & Using SSG.mp4
05:34 -
014 Deployment Methods – A Summary.mp4
00:54
17 – Course Roundup & Next Steps
-
001 Course Roundup.mp4
01:48 -
003 About The Rest Of This Course.mp4
02:10
18 – The Basics [Angular 16]
-
017 Property Binding vs String Interpolation.mp4
03:07 -
034 Getting the Index when using ngFor.mp4
02:52 -
033 [OPTIONAL] Assignment Solution.mp4
07:06 -
031 Outputting Lists with ngFor.mp4
03:43 -
030 Applying CSS Classes Dynamically with ngClass.mp4
02:53 -
029 Styling Elements Dynamically with ngStyle.mp4
05:01 -
027 Enhancing ngIf with an Else Condition.mp4
02:46 -
026 Using ngIf to Output Data Conditionally.mp4
03:52 -
025 Understanding Directives.mp4
02:17 -
024 [OPTIONAL] Assignment Solution.mp4
05:12 -
023 Combining all Forms of Databinding.mp4
01:46 -
022 Two-Way-Databinding.mp4
02:47 -
020 Passing and Using Data with Event Binding.mp4
04:37 -
018 Event Binding.mp4
04:08 -
002 Module Introduction.mp4
00:56 -
016 Property Binding.mp4
06:33 -
015 String Interpolation.mp4
05:19 -
014 What is Databinding.mp4
02:49 -
013 [OPTIONAL] Assignment Solution.mp4
06:42 -
012 Fully Understanding the Component Selector.mp4
03:49 -
011 Working with Component Styles.mp4
04:02 -
010 Working with Component Templates.mp4
03:08 -
009 Creating Components with the CLI & Nesting Components.mp4
03:50 -
008 Using Custom Components.mp4
01:12 -
006 Understanding the Role of AppModule and Component Declaration.mp4
05:15 -
005 Creating a New Component.mp4
06:51 -
004 Components are Important!.mp4
03:08 -
003 How an Angular App gets Loaded and Started.mp4
07:11
19 – Course Project – The Basics [Angular 16]
-
002 Project Introduction.mp4
01:04 -
003 Planning the App.mp4
05:33 -
005 Setting up the Application.mp4
04:31 -
006 Creating the Components.mp4
09:32 -
007 Using the Components.mp4
03:15 -
008 Adding a Navigation Bar.mp4
05:09 -
010 Creating a Recipe Model.mp4
04:33 -
011 Adding Content to the Recipes Components.mp4
07:41 -
012 Outputting a List of Recipes with ngFor.mp4
04:37 -
013 Displaying Recipe Details.mp4
05:52 -
014 Working on the ShoppingListComponent.mp4
01:49 -
015 Creating an Ingredient Model.mp4
02:35 -
016 Creating and Outputting the Shopping List.mp4
02:27 -
017 Adding a Shopping List Edit Section.mp4
03:28 -
018 Wrap Up & Next Steps.mp4
00:54
20 – Debugging [Angular 16]
-
001 Understanding Angular Error Messages.mp4
04:36 -
002 Debugging Code in the Browser Using Sourcemaps.mp4
05:32
21 – Components & Databinding Deep Dive [Angular 16]
-
010 More on View Encapsulation.mp4
02:43 -
021 [OPTIONAL] Assignment Solution.mp4
12:21 -
020 Wrap Up.mp4
00:49 -
019 Getting Access to ng-content with @ContentChild.mp4
03:00 -
017 Lifecycle Hooks and Template Access.mp4
02:33 -
016 Seeing Lifecycle Hooks in Action.mp4
11:54 -
015 Understanding the Component Lifecycle.mp4
04:54 -
014 Projecting Content into Components with ng-content.mp4
03:21 -
013 Getting Access to the Template & DOM with @ViewChild.mp4
05:02 -
011 Using Local References in Templates.mp4
04:36 -
001 Module Introduction.mp4
00:36 -
009 Understanding View Encapsulation.mp4
04:59 -
008 Custom Property and Event Binding Summary.mp4
02:02 -
007 Assigning an Alias to Custom Events.mp4
00:57 -
006 Binding to Custom Events.mp4
09:05 -
005 Assigning an Alias to Custom Properties.mp4
01:59 -
004 Binding to Custom Properties.mp4
05:43 -
003 Property & Event Binding Overview.mp4
01:44 -
002 Splitting Apps into Components.mp4
05:55
22 – Course Project – Components & Databinding [Angular 16]
-
001 Introduction.mp4
00:50 -
002 Adding Navigation with Event Binding and ngIf.mp4
07:31 -
003 Passing Recipe Data with Property Binding.mp4
04:43 -
004 Passing Data with Event and Property Binding (Combined).mp4
10:31 -
006 Allowing the User to Add Ingredients to the Shopping List.mp4
07:22
23 – Directives Deep Dive [Angular 16]
-
001 Module Introduction.mp4
01:23 -
002 ngFor and ngIf Recap.mp4
03:36 -
003 ngClass and ngStyle Recap.mp4
02:56 -
004 Creating a Basic Attribute Directive.mp4
06:42 -
005 Using the Renderer to build a Better Attribute Directive.mp4
07:04 -
007 Using HostListener to Listen to Host Events.mp4
02:59 -
008 Using HostBinding to Bind to Host Properties.mp4
03:17 -
009 Binding to Directive Properties.mp4
06:43 -
010 What Happens behind the Scenes on Structural Directives.mp4
03:04 -
011 Building a Structural Directive.mp4
06:13 -
012 Understanding ngSwitch.mp4
02:49