Angular in Action
Covers Angular 2
Jeremy Wilken
  • MEAP began October 2015
  • Publication in October 2017 (estimated)
  • ISBN 9781617293313
  • 310 pages (estimated)
  • printed in black & white

Angular in Action teaches you modern application development with Angular. You'll begin with the basics of Angular and the technologies and techniques you'll use throughout the book, such as key features of TypeScript, newer ES6 syntax and concepts, and details about the tools needed to write professional Angular applications. Next, you'll build an Angular application from scratch. You'll learn about the primary pieces of an Angular application and see how they work together. Using lots of examples, you'll learn the core parts of Angular, such as Components, the Router, and Services. You'll also learn techniques like server-side rendering. Finally, you'll gain insight into advanced skills that should be part of any professional Angular developer's toolkit, such as testing, tooling options, and performance tuning.

Table of Contents detailed table of contents

1. Angular, a Modern Web Platform

1.1. Angular, a platform, not a framework

1.1.1. Angular CLI

1.1.2. Universal rendering and the compiler

1.1.3. Mobile and desktop capabilities

1.1.4. UI libraries

1.2. Component architecture

1.2.1. Components in detail

1.2.2. Custom Elements

1.2.3. Shadow DOM

1.2.4. Templates

1.2.5. JavaScript Modules

1.3. Modern JavaScript and Angular

1.4. TypeScript and Angular

1.5. Angular with Dart or ES5 JavaScript

1.6. Summary

2. Building your first Angular app

2.1. Preview the chapter project

2.2. Setting up the project

2.3. The basic app scaffolding

2.4. How Angular renders the base application

2.4.1. App Component

2.4.2. App Module

2.4.3. Bootstrapping the app

2.5. Building services

2.6. Creating your first component

2.7. Components that use components and services

2.8. Components with forms and events

2.9. Application routing

2.10. Additional exercises

2.11. Summary

3. App Essentials

3.1. Entities in Angular

3.1.1. Modules

3.1.2. Components

3.1.3. Directives

3.1.4. Pipes

3.1.5. Services

3.2. How Angular begins to render an app

3.3. Types of compilers

3.4. Dependency injection

3.5. Change detection

3.6. Template expressions and bindings

3.6.1. Interpolation

3.6.2. Property bindings

3.6.3. Special property bindings

3.6.4. Attribute bindings

3.6.5. Event bindings

3.7. Summary

4. Components

4.1. Composition and lifecycle of a component

4.1.1. Component lifecycle

4.1.2. Lifecycle hooks

4.1.3. Nesting components

4.2. Types of components

4.3. Setting up the chapter example

4.3.1. Generating the project

4.3.2. Setting up the first display component

4.4. Creating a data component

4.5. Using inputs with components

4.5.1. Input basics

4.5.2. Intercepting inputs

4.6. Content projection

4.7. Change detection and optimizations

4.8. Communicating between components

4.8.1. Output events and template variables

4.8.2. ViewChild to reference components

4.9. Styling components and encapsulation modes

4.9.1. Adding styles to a component

4.9.2. Encapsulation modes

4.10. Dynamically rendering components

4.10.1. Using the ng-bootstrap modal for dynamic components

4.10.2. Dynamically creating a component and rendering it

4.11. Summary

5. Services

5.1. Setting up the chapter example

5.1.1. Getting the chapter files

5.1.2. Sample data

5.2. Creating Angular services

5.3. Dependency injection and injector trees

5.4. Services without dependency injection

5.5. Using the Http service

5.6. Helper services

5.7. Services for sharing

5.8. Additional services

5.9. Summary

6. Routing

6.1. Setting up the chapter example

6.2. Route definitions and router setup

6.3. Feature modules and routing

6.4. Route parameters

6.4.2. Access the route parameters in a component

6.5. Child routes

6.6. Secondary routes

6.6.1. Defining a secondary route

6.6.2. Navigating between secondary routes

6.6.3. Closing a secondary route and programmatic routing

6.7. Route guards to limit access

6.8. Lazy loading

6.9. Routing best practices

6.10. Summary

7. Building Custom Directives and Pipes

7.1. Setting up the chapter example

7.2. Crafting custom directives

7.2.1. Creating an attribute directive

7.2.2. Modifying a component with a directive with events

7.2.3. Creating a structural directive

7.3. Crafting custom pipes

7.3.1. Creating a pure pipe

7.3.2. Creating an impure pipe

7.4. Summary

8. Forms

8.1. Setting up the chapter example

8.1.1. Review the app before starting

8.2. Template driven forms

8.2.1. Binding model data to inputs with NgModel

8.2.2. Validating form controls with NgModel

8.2.3. Custom validation with directives

8.2.4. Handling submit or cancel events

8.3. Reactive forms

8.3.1. Defining your form

8.3.2. Implementing the template

8.3.3. Watching changes

8.3.4. Custom validators with reactive forms

8.3.5. Handling submit or cancel events

8.3.6. Which form approach is better?

8.4. Summary

9. Testing Your Application

9.1. Testing tools and setting up the chapter example

9.1.1. Testing tools

9.2. Unit testing

9.2.1. Anatomy of unit tests

9.2.2. Testing pipes

9.2.3. Testing services, stubs, and mocking HTTP requests

9.2.4. Testing components and using testing modules

9.2.5. Testing directives

9.3. E2E testing

9.4. Real world testing strategies

9.4.1. How much testing is enough?

9.4.2. When do I write tests?

9.4.3. What do I write, E2E or unit tests?

9.4.4. What if I don’t have time to write tests?

9.4.5. What about other types of testing?

9.5. Summary

10. Angular in Production

10.1. Building Angular for production

10.1.1. Production build

10.1.2. Optimize for target browsers

10.1.3. Progressive Web Apps

10.1.4. Using alternative build tooling

10.1.5. Server side rendering or pre-rendering

10.1.6. Build pipelines

10.2. Angular architecture choices

10.2.1. Lazy load routes

10.2.2. Reduce external dependencies

10.2.3. Import minimal items

10.2.4. Stay up to date

10.3. Deployment

10.4. Summary

Appendixes:

Appendix A: Upgrading from AngularJS to Angular

A.1. Option 1: Don’t upgrade

A.2. Option 2: Rewrite from scratch

A.3. Option 3: Incremental upgrade

A.4. Summary

About the Technology

When you move beyond building simple web sites or small applications, things get complicated. Managing data gets messy, handling browser incompatibilities takes time, you have to juggle competing user interactions, integrating the work of multiple developers is tricky, and you need a defined process to manage, test, and deploy your code. That's where the Angular platform can help you. This application-oriented platform lets you focus on development by handling these common issues, making it ideal for writing large-scale web applications that can be maintained, extended, and tested. And because it's popular, it offers a well-supported code base, vibrant community, and rich ecosystem. Best of all, the new version of Angular emphasizes performance and focuses on mobile apps by being compact and memory efficient. And it's designed for the future by paying attention to browser standards that are coming soon, rather than older standards that will soon be obsolete.

What's inside

  • What you need to know to succeed with Angular
  • Jumpstarting your first Angular application
  • Hands-on with Angular's features
  • Tooling you need to know and use for testing and debugging
  • How to build Angular for production and how to manage large applications

About the reader

This book assumes you know JavaScript, HTML, and CSS. No prior exposure to AngularJS or other web frameworks is required. Knowledge of TypeScript and ES6 is helpful but not required.

About the author

Jeremy Wilken is a web application engineer with a focus on building web applications at companies like eBay, Teradata, and VMware. He is a Google Developer Expert for Angular and Web Technologies and regularly speaks at events and writes around the web. He is also the author of Ionic in Action, a mobile application framework. He lives in Austin, Texas with his family and enjoys brewing his own beers.


Manning Early Access Program (MEAP) Read chapters as they are written, get the finished eBook as soon as it’s ready, and receive the pBook long before it's in bookstores.
Buy
MEAP combo $44.99 pBook + eBook + liveBook
MEAP eBook $35.99 pdf + ePub + kindle + liveBook

FREE domestic shipping on three or more pBooks