Angular Pro

Online course with Todd Motto with Todd Motto

Release imminent

Angular: v4.x.x

Learn Angular inside out. All the advanced features, including RxJS and TypeScript concepts, state management, unit testing and a final app project.

Single course

Single user

2-5 users

6-10 users

11-20 users

21-40 users

$

99

$

189

$

399

$

599

$

799

$

1,099

$

1,299

$

1,799

$

2,199

$

2,899

EU customers: price excludes VAT

Stream or download

Learn at home or on the daily commute. Online or offline viewing.

Free lifetime updates

Never stop learning. Each course comes with unlimited updates forever.

Slack community

Get members-only exclusive access to our private community.

Expert trainers

Hand-crafted courses to guide you every step, in the right direction.

Job ready training, real world scenarios, API exploration and teaching.

Trusted by thousands, there's no better place to learn Angular.

  • Overview, setup and source files

    • Course introduction 00:23

    • Setup instructions Readme

    • Source files Readme

  • Advanced Components

    • Content projection with ng-content 02:54

    • Using ng-content with projection slots 03:10

    • Projecting and binding to components 04:35

    • @ContentChild and ngAfterContentInit 07:32

    • @ContentChildren and QueryLists 03:44

    • @ViewChild and ngAfterViewInit 06:09

    • @ViewChildren and QueryLists 05:12

    • @ViewChild and template #refs 01:49

    • Using ElementRef and nativeElement 03:58

    • Using the platform agnostic Renderer 04:07

    • Dynamic components with ComponentFactoryResolver 07:12

      Free preview
    • Dynamic component @Input data 02:51

    • Dynamic component @Output subscriptions 02:04

    • Destroying dynamic components 02:51

    • Dynamic components reordering 03:26

    • Dynamic <template> rendering with ViewContainerRef 02:50

      Free preview
    • Passing context to a dynamic <template> 03:47

    • Dynamic <template> rendering with ngTemplateOutlet 01:39

    • Using ngTemplateOutlet with context 02:33

    • ViewEncapsulation and Shadow DOM 05:43

    • ChangeDetectionStrategy.OnPush and Immutability 06:22

  • Directives

    • Creating a custom attribute Directive 05:20

    • @HostListener and host Object 05:34

    • Understanding @HostBinding 03:33

    • Using the exportAs property with template refs 05:20

    • Creating a custom structural Directive 12:09

  • Custom Pipes

    • Creating a custom pipe 05:26

    • Pipes as providers 04:00

  • Reactive Forms

    • Reactive Forms setup 05:59

    • FormControls and FormGroups 08:17

    • Componentizing FormGroups 13:13

    • Binding FormControls to <select> 08:45

    • FormGroup collections with FormArray 12:17

      Free preview
    • Adding items to the FormArray 06:38

    • Removing items from the FormArray 07:08

    • FormBuilder API 04:11

    • Http service and joining Observables 23:21

    • Subscribing to the valueChanges Observable 07:29

    • Updating and resetting FormGroups and FormControls 05:07

    • Custom form control base 08:42

    • Implementing a ControlValueAccessor 14:01

    • Adding keyboard events to our control 08:17

    • Validators object for FormControls 06:44

    • FormControl (custom) validators 09:40

    • FormGroup (custom) validators 09:49

      Free preview
    • Async (custom) validators 12:06

  • Routing

    • Enabling route tracing 01:30

    • Subscribing to router events 06:09

    • Router outlet events 03:08

    • Dynamic route resolves with snapshots 19:53

    • Auxiliary named router outlets 05:12

    • Navigating to auxiliary named outlets 04:30

    • Auxiliary Navigation API 04:07

    • Destroying auxiliary outlets 04:13

    • Resolving data for auxiliary outlets 10:58

    • Lazy-loading modules 09:59

    • Preloading lazy-loaded modules 03:01

    • Custom preloading strategies 07:15

    • Protecting lazy-loaded modules with canLoad 09:25

      Free preview
    • Guards with canActivate 05:23

    • Guards with canActivateChild 03:03

    • Guards with canDeactivate 10:25

  • Unit Testing

    • Karma setup and walkthrough 02:58

    • Testing isolate Pipes 05:43

    • Shallow testing Pipes 14:31

    • Testing Services with dependencies 12:24

    • Testing Component methods 05:54

    • Testing @Input and @Output bindings 04:47

    • Testing Component templates 10:09

    • Testing container Components with async providers 13:48

      Free preview
    • Using NO_ERRORS_SCHEMA 02:09

    • Testing an Attribute Directive 06:35

  • Dependency Injection and Zones

    • Providers and useValue 06:12

    • Using InjectionToken 04:01

    • Providers and useClass 02:48

    • Providers and useFactory 05:41

    • Providers and useExisting 04:11

    • Configurable NgModules 06:27

    • Zones and NgZone 06:26

  • State Management with Rx

    • State Management architecture overview 07:01

    • Creating an Observable Store with Rx 16:44

    • Container components setup 06:16

    • Populating the Store and component subscription 13:39

    • Composing new Observable streams from our Store 04:24

    • Integrating a stateless component 08:46

    • Component outputs back to Service 07:26

    • Updating our Store in a Service 07:00

  • Final Project

    • Currently recording

    • Currently recording

    • Currently recording

    • Currently recording

    • Currently recording