Angular 2 Development with TypeScript
Publisher: Manning Publications
Published: Dec 30, 2016
Number of pages: 456
ISBN-13: 9781617293122
Description: 1 online resource (1 volume) :
Table of contents: title: Preface
pagenum: xiii; title: Acknowledgments
pagenum: xvi; title: About This Book
pagenum: xvii; title: About the Cover Illustration
pagenum: xxi; label: 1
title: Introducing Angular 2
pagenum: 1; label: 1.1
title: A Sampler of JavaScript Frameworks and Libraries
pagenum: 2; title: Feature-complete frameworks
pagenum: 2; title: Lightweight frameworks
pagenum: 3; title: Libraries
pagenum: 3; title: What is Node.js?
pagenum: 4; label: 1.2
title: High-level Overview of AngularJS
pagenum: 5; label: 1.3
title: High-level Overview of Angular
pagenum: 8; title: Code simplification
pagenum: 8; title: Performance improvements
pagenum: 14; label: 1.4
title: An Angular Developer's Toolbox
pagenum: 15; label: 1.5
title: How Things Are Done in Angular
pagenum: 18; label: 1.6
title: Introducing the Online Auction Example
pagenum: 19; label: 1.7
title: Summary
pagenum: 22; label: 2
title: Getting Started with Angular
pagenum: 23; label: 2.1
title: A First Angular Application
pagenum: 24; title: Hello World in TypeScript
pagenum: 24; title: Hello World in ES5
pagenum: 28; title: Hello World in ES6
pagenum: 29; title: Launching applications
pagenum: 31; label: 2.2
title: The Building Blocks of an Angular Application
pagenum: 32; title: Modules
pagenum: 32; title: Components
pagenum: 33; title: Directives
pagenum: 35; title: A brief introduction to data binding
pagenum: 36; label: 2.3
title: The SystemJS Universal Module Loader
pagenum: 36; title: An overview of module loaders
pagenum: 36; title: Module loaders vs. <script> tags
pagenum: 37; title: Getting started with SystemJS
pagenum: 38; label: 2.4
title: Selecting a Package Manager
pagenum: 43; title: Comparing npm and jspm
pagenum: 45; title: Starting an Angular project with npm
pagenum: 46; label: 2.5
title: Hands-on: Getting Started with the Online Auction
pagenum: 52; title: Initial project setup
pagenum: 53; title: Developing the home page
pagenum: 54; title: Launching the online auction application
pagenum: 62; label: 2.6
title: Summary
pagenum: 63; label: 3
title: Navigation with the Angular Router
pagenum: 64; label: 3.1
title: Routing Basics
pagenum: 65; title: Location strategies
pagenum: 66; title: The building blocks of client-side navigation
pagenum: 68; title: Navigating to routes with navigate()
pagenum: 75; label: 3.2
title: Passing Data to Routes
pagenum: 76; title: Extracting parameters from ActivatedRoute
pagenum: 77; title: Passing static data to a route
pagenum: 79; label: 3.3
title: Child Routes
pagenum: 80; label: 3.4
title: Guarding Routes
pagenum: 87; label: 3.5
title: Developing a SPA with Multiple Router Outlets
pagenum: 91; label: 3.6
title: Splitting an App into Modules
pagenum: 95; label: 3.7
title: Lazy-loading Modules
pagenum: 97; label: 3.8
title: Hands-on: Adding Navigation to the Online Auction
pagenum: 99; title: Creating ProductDetailComponent
pagenum: 100; title: Creating HomeComponent and code refactoring
pagenum: 101; title: Simplifying ApplicationComponent
pagenum: 102; title: Adding a RouterLink to ProductItemComponent
pagenum: 103; title: Modifying the root module to add routing
pagenum: 105; title: Running the auction
pagenum: 106; label: 3.9
title: Summary
pagenum: 107; label: 4
title: Dependency Injection
pagenum: 108; label: 4.1
title: The Dependency Injection and Inversion of Control Patterns
pagenum: 109; title: The Dependency Injection pattern
pagenum: 109; title: The Inversion of Control pattern
pagenum: 110; title: Benefits of dependency injection
pagenum: 110; label: 4.2
title: Injectors and Providers
pagenum: 112; title: How to Declare a Provider
pagenum: 115; label: 4.3
title: A Sample Application with Angular DI
pagenum: 116; title: Injecting a Product Service
pagenum: 116; title: Injecting the Http Service
pagenum: 119; label: 4.4
title: Switching Injectables Made Easy
pagenum: 120; title: Declaring Providers with useFactory and useValue
pagenum: 123; title: Using OpaqueToken
pagenum: 126; label: 4.5
title: The Hierarchy of Injectors
pagenum: 127; title: viewProviders
pagenum: 129; label: 4.6
title: Hands-on: Using DI in the Online Auction Application
pagenum: 130; title: Changing the Code to Pass the Product ID as a Parameter
pagenum: 133; title: Modifying ProductDetailComponent
pagenum: 133; label: 4.7
title: Summary
pagenum: 138; label: 5
title: Bindings, Observables, and Pipes
pagenum: 139; label: 5.1
title: Data Binding
pagenum: 140; title: Binding to Events
pagenum: 141; title: Binding to Properties and Attributes
pagenum: 142; title: Binding in Templates
pagenum: 146; title: Two-way Data Binding
pagenum: 149; label: 5.2
title: Reactive Programming and Observables
pagenum: 152; title: What are Observables and Observers?
pagenum: 152; title: Observable Event Streams
pagenum: 154; title: Cancelling Observables
pagenum: 158; label: 5.3
title: Pipes
pagenum: 162; title: Custom Pipes
pagenum: 163; label: 5.4
title: Hands-on: Filtering Products in the Online Auction
pagenum: 165; label: 5.5
title: Summary
pagenum: 168; label: 6
title: Implementing Component Communications
pagenum: 170; label: 6.1
title: Inter-component Communication
pagenum: 171; title: Input and Output Properties
pagenum: 171; title: The Mediator Pattern
pagenum: 178; title: Changing Templates at Runtime with ngContent
pagenum: 182; label: 6.2
title: Component Lifecycle
pagenum: 187; title: Using ngOnChanges
pagenum: 189; label: 6.3
title: A High-level Overview of Change Detection
pagenum: 194; label: 6.4
title: Exposing a Child Component's API
pagenum: 196; label: 6.5
title: Hands-on: Adding a Rating Feature to the Online Auction
pagenum: 198; label: 6.6
title: Summary
pagenum: 204; label: 7
title: Working with Forms
pagenum: 206; label: 7.1
title: Overview of HTML Forms
pagenum: 207; title: Standard Browser Features
pagenum: 207; title: Angular's Forms API
pagenum: 209; label: 7.2
title: Template-driven Forms
pagenum: 210; title: Directives Overview
pagenum: 211; title: Enriching the HTML Form
pagenum: 213; label: 7.3
title: Reactive Forms
pagenum: 215; title: Form Model
pagenum: 215; title: Form Directives
pagenum: 216; title: Refactoring the Sample Form
pagenum: 220; title: Using FormBuilder
pagenum: 221; label: 7.4
title: Form Validation
pagenum: 222; title: Validating Reactive Forms
pagenum: 222; label: 7.5
title: Hands-on: Adding Validation to the Search Form
pagenum: 231; title: Modifying the Root Module to Add Forms API Support
pagenum: 232; title: Adding a List of Categories to SearchComponent
pagenum: 232; title: Creating a Form Model
pagenum: 233; title: Refactoring the Template
pagenum: 234; title: Implementing the onSearch() Method
pagenum: 236; title: Launching the Online Auction
pagenum: 236; label: 7.6
title: Summary
pagenum: 236; label: 8
title: Interacting with Servers Using HTTP and WebSockets
pagenum: 237; label: 8.1
title: A Brief Overview of the Http Object's API
pagenum: 238; label: 8.2
title: Creating a Web Server with Node and TypeScript
pagenum: 241; title: Creating a Simple Web Server
pagenum: 241; title: Serving JSON
pagenum: 243; title: Live TypeScript Recompilation and Code Reload
pagenum: 245; title: Adding the RESTful API for Serving Products
pagenum: 246; label: 8.3
title: Bringing Angular and Node Together
pagenum: 248; title: Static Resources on the Server
pagenum: 248; title: Making GET Requests with the Http Object
pagenum: 251; title: Unwrapping Observables in Templates with AsyncPipe
pagenum: 252; title: Injecting HTTP into a Service
pagenum: 254; label: 8.4
title: Client-server Communication via WebSockets
pagenum: 257; title: Pushing Data from a Node Server
pagenum: 258; title: Turning a WebSocket into an Observable
pagenum: 261; label: 8.5
title: Hands-on: Implementing Product Search and Bid Notifications
pagenum: 268; title: Implementing Product Search Using HTTP
pagenum: 269; title: Broadcasting Auction Bids Using WebSockets
pagenum: 273; label: 8.6
title: Summary
pagenum: 276; label: 9
title: Unit-testing Angular Applications
pagenum: 278; label: 9.1
title: Getting to Know Jasmine
pagenum: 279; title: What to Test
pagenum: 282; title: How to Install Jasmine
pagenum: 282; label: 9.2
title: What Comes with Angular's Testing Library
pagenum: 283; title: Testing Services
pagenum: 285; title: Testing Navigation with the Router
pagenum: 285; title: Testing Components
pagenum: 286; label: 9.3
title: Testing a Sample Weather Application
pagenum: 287; title: Configuring SystemJS
pagenum: 289; title: Testing the Weather Router
pagenum: 289; title: Testing the Weather Service
pagenum: 292; title: Testing the Weather Component
pagenum: 295; label: 9.4
title: Running Tests with Karma
pagenum: 298; label: 9.5
title: Hands-on: Unit-testing the Online Auction
pagenum: 300; title: Testing Application Component
pagenum: 303; title: Testing ProductService
pagenum: 304; title: Testing StarsComponent
pagenum: 305; title: Running the Tests
pagenum: 307; label: 9.6
title: Summary
pagenum: 309; label: 10
title: Bundling and Deploying Applications with Webpack
pagenum: 310; label: 10.1
title: Getting to Know Webpack
pagenum: 312; title: Hello World with Webpack
pagenum: 313; title: How to Use Loaders
pagenum: 318; title: How to Use Plugins
pagenum: 322; label: 10.2
title: Creating a Basic Webpack Configuration for Angular
pagenum: 322; title: npm run build
pagenum: 325; title: npm start
pagenum: 327; label: 10.3
title: Creating Development and Production Configurations
pagenum: 327; title: Development Configuration
pagenum: 328; title: Production Configuration
pagenum: 329; title: A Custom Type-definition File
pagenum: 332; label: 10.4
title: What's Angular CLI?
pagenum: 334; title: Starting a New Project with Angular CLI
pagenum: 335; title: CLI Commands
pagenum: 335; label: 10.5
title: Hands-on: Deploying the Online Auction with Webpack
pagenum: 337; title: Starting the Node Server
pagenum: 338; title: Starting the Auction Client
pagenum: 339; title: Running Tests with Karma
pagenum: 342; label: 10.6
title: Summary
pagenum: 345; label: Appendix A
title: An Overview of ECMAScript 6
pagenum: 347; label: Appendix B
title: TypeScript as a Language for Angular Applications
pagenum: 388; title: Index
pagenum: 421