These are practice exercises for Pluralsight’s Angular Fundamentals course. They are also great stand-alone exercises and you can refer to the course for a little training for each of them.
The exercises below are broken up into sections by course module and contain links to the clip in the course that discusses
that topic, a link to the practice exercise on Plunker, and a link to the finished example for each exercise. Try to finish
each exercise before looking at the finished example.
Introduction and Getting Started
| Clip | Practice Exercise | Finished Example |
|---|---|---|
| Creating Our First Component | Defining SystemJS Packages | Finished |
| Creating Our First Component | Bootstrapping an App Component | Finished |
Creating and Communicating Between Components
Exploring the New Template Syntax
Creating Reusable Services
| Clip | Practice Exercise | Finished Example |
|---|---|---|
| Creating and Injecting Services | Finished |
Routing and Navigating Pages
Collecting Data with Forms and Validation
| Clip | Practice Exercise | Finished Example |
|---|---|---|
| Creating a Template-based Form | Finished | |
| Validating a Template-based Form | Finished | |
| Creating a Reactive Form | Finished | |
|
and
|
Validating a Reactive Form | Finished |
| Creating Custom Validators | Creating a Custom Validator | Finished |
Reusing Components with Content Projection
| Clip | Practice Exercise | Finished Example |
|---|---|---|
| Creating a Component with Content Projection | Finished | |
| Creating a Component with Multiple Slot Content Projection | Finished |
Manipulating Data With Pipes
| Clip | Practice Exercise | Finished Example |
|---|---|---|
| Using the Lowercase Pipe | Finished | |
| Using the Date Pipe with Parameters | Finished | |
| Creating a Custom Pipe | Finished | |
| Using the ngOnChanges Lifecycle Hook | Finished | |
| Filtering Data | Finished | |
| Sorting Data | Finished |
Understanding Dependency Injection
| Clip | Practice Exercise | Finished Example |
|---|---|---|
| Use an Opaque Token & @Inject() | Finished | |
| Use the useExisting provider | Finished |
Creating Directives and Advanced Components
| Clip | Practice Exercise | Finished Example |
|---|---|---|
| Create a Directive | Finished | |
| Listen to Route Parameter Changes of a Parameterized Page | Finished | |
| Using @viewChild | Finished |
Communicating with the Server using HTTP, Observables, and Rx
| Clip | Practice Exercise | Finished Example |
|---|---|---|
| Turning an Observable into a Promise | Finished | |
| Making an HTTP Get Request | Finished | |
| Massaging Requested Data with Map | Finished | |
| Using Querystring Parameters | Finished |
Unit Testing Your Code
| Clip | Practice Exercise | Finished Example |
|---|---|---|
| Write a Basic Test | Finished | |
| Test a Service | Finished | |
| Use a Jasmine Spy Object | Finished | |
| Mock a Http Call | Finished | |
| Use toHaveBeenCalledWith | Finished |
Testing Components with Integrated Tests
| Clip | Practice Exercise | Finished Example |
|---|---|---|
| Test a Component with an Integrated Test | Finished |
