Developing with Angular
Developing with Angular
About the Book
This book gives you a broad practical overview of the Angular framework and related modern web technologies. It provides the guidance for the process of web component development that includes Angular and Angular CLI, TypeScript and ES6, applications bundling with Webpack, and other essentials.
Table of Contents
-
Introduction
- Book Revision
- Book progress
- Code examples
- Feedback, Bug Reports and Suggestions
- Other publications
- Testimonials
-
Prerequisites
- Node
-
Visual Studio Code
- Recommended extensions
- Hiding files
-
ES6
- Classes
- Inheritance
-
Arrow Functions
- Expression Bodies
- Statement Bodies
- Lexical this
- Template Literals
-
Extended Parameter Handling
- Default Parameter Values
- Rest Parameter
- Spread Operator
-
Destructuring assignment
- Basic example
-
Array destructuring
- Value assignment
- Default values
- Swapping values
- Skipping values
- Grouping tail values into a single variable
-
Object destructuring
- Unpacking properties
- Renaming properties
- Default values
- Unpacking methods
- Renaming methods
-
Using with function parameters
- IDE support
-
Modules
- Exporting and Importing Values
- Default Values
- Wildcard Export
- See also
-
TypeScript
-
Getting Started with TypeScript
- Installing TypeScript
- Using tsc
- Typings
-
Linting
- tslint
-
TypeScript Features
-
Types
- Basic Types
- Arrays
- Enum
- Any
- Void
-
Classes
- Properties
- Setters and Getters
-
Methods
- Return values
- Method parameters
- Optional parameters
- Default parameters
- Rest Parameters and Spread Operator
- Constructors
- Inheritance
-
Access Modifiers
- Public
- Private
- Protected
- Interfaces
- Abstract Classes
-
Modules
- Module Loaders
- Running at server side
- Running in browser
-
Decorators
-
Class Decorators
- Decorators with parameters
- Multiple decorators
- Method Decorators
- Accessor Decorators
- Property Decorators
- Parameter Decorators
-
Class Decorators
-
Types
-
Getting Started with TypeScript
-
Angular CLI
- Installing
- Your first application
- Running application
- Code Linting
- Unit tests
- Code coverage
- Development and Production builds
- Using blueprints
-
Creating modules
- Assigning components to modules
- Routing support
- Generating standalone scripts
-
Components
- Creating a simple component
- Generating components with Angular CLI
- Component metadata
-
Templates
- Inline templates
- External templates
-
Styles
- Inline styles
- External styles
- Input properties
-
Output events
- Raising events
- Handling events
- Typed events
- Accessing event parameters
- Aliased outputs
- Providers
-
Host
- CSS class
- Host events
- Host attributes
- Host properties
-
Queries
- Preparing the project
- @ViewChild
- @ViewChildren
- @ContentChild
- @ContentChildren
- Listening for View and Content changes
-
Component Lifecycle
- ngOnChanges
- ngOnInit
- ngDoCheck
- ngAfterContentInit
- ngAfterContentChecked
- ngAfterViewInit
- ngAfterViewChecked
-
ngOnDestroy
- Cleaning up subscriptions
-
Content Projection
- ng-container directive
-
Projecting single entity
- Supporting external content
-
Projecting multiple entities
- Projecting with CSS selectors
-
Projecting with Component selectors
- Fallback content
-
Dependency Injection
- Preparing a project
-
Services
- Creating LogService
- Injecting and using LogService
-
Providers
- Using a class
-
Using a class factory
- Class factories with dependencies
- Using @Inject decorator
- Using a value
- Using an alias
-
Injection Tokens
- Type tokens
- String tokens
- Generic InjectionToken
- Injecting multiple instances
- Optional dependencies
- Manual injection with ReflectiveInjector
- Summary
-
Events
-
Component events
- Bubbling up child events
- DOM events
- Service events
-
Component events
-
Directives
- Introduction
-
Attribute Directives
- Handling host events
-
Host members binding
- Binding element attributes
- Binding element properties
- Binding style attributes
- Binding class names
-
Built-in attribute directives
- NgStyle
-
NgClass
- Binding to String Expression (single):
- Binding to String Expression (space delimited)
- Binding to Object Literal
- Binding to Array
- NgNonBindable
-
Structural Directives
-
Built-in structural directives
- NgIf
-
NgFor
- Binding to arrays
- Binding to class properties or functions
- Using exported variables
-
Improving performance with
trackBy
- NgSwitch
- Creating a Structural Directive
-
Built-in structural directives
- Modifying host element layout
- Walkthrough: Upload Directive
-
Pipes
- Introduction
- Pipes with Parameters
- Chaining Pipes
-
Built-in Pipes
- UpperCase
- LowerCase
- TitleCase
-
Date
- Custom formatting rules
- Predefined formatting rules
- Decimal
- Currency
- Percent
- Json
-
Slice
- Using with Arrays
- Using with Strings
- I18nSelect
- I18nPlural
-
Async
- Using with NgFor directive
- Using with Date object
-
Custom Pipes
- Implementing Custom Pipe
-
Pure And Impure Pipes
- Preparing Project
- Pure Pipes
- Impure Pipes
-
Global Application Configuration
- Preparing the configuration file
- Creating the configuration service
- Loading server-side configuration file
- Registering configuration service
- Using configuration settings
-
Internationalisation (i18n)
- Creating Translate Service
- Creating Translate Pipe
- Using Translate Pipe
- Switching languages
- Summary
-
Advanced Angular
-
Dynamic Content in Angular
-
List item templates
- List component
- Row templates
- Typical use cases
-
Dynamic Components
- Runtime context
- Typical use cases
-
Runtime Compilation
- Binding events
- Typical use cases
-
List item templates
-
Plugins
- Preparing new project
-
Building components based on string names
- Loading configuration from external sources
- Dynamically changing application routes
-
External plugins
- Extension decorator
- Creating a Plugins Core library
- Creating an example Plugin library
- Extra libraries and dependencies
- Providing dependencies for your plugins
- Loading plugins into the Application
- Setting plugin properties at runtime
- Dynamic Routes with plugin content
- Summary
-
Dynamic Content in Angular
-
Reusable Component Libraries
- Creating new application
- Creating component libraries
- Building the packages
- Publishing to NPM
- Integrating with the application
- See also
-
Using with Docker
- Additional Resources
- Preparing new project
- Creating Dockerfile
- Testing in a container
- Creating docker-compose.yml
- Publishing to Docker Hub
- Consuming from Docker Hub
-
Automating with Travis
- See also
-
Webpack
- Initial project structure
- Typescript configuration
-
Basic webpack setup
- Enabling source maps
- Simple Angular application
- Generating index page
- Development server
- Start command with NPM
- Fixing Angular warnings
- Testing source maps
-
Advanced webpack setup
- External Html templates
- External CSS styles
- Loading images
- TSLint
-
Unit testing
- Code coverage
-
Code splitting
-
Multiple configurations
- Development mode
- Production mode
- CSS splitting
- Vendor code splitting
-
Multiple configurations
-
Building a Mobile App with Cordova and Angular
- Installing command-line tools
-
Generating a new Cordova App
- Adding the Browser platform
- Adding the iOS platform
-
Generating a new Angular App
- Build scripts
- Running Angular in the Browser
- Running Angular in the iOS emulator
-
Routing support
- Routing in the iOS emulator
- Summary
-
Changelog
- Revision 16 (2018-10-23)
- Revision 15 (2018-06-03)
- Revision 14 (2018-04-08)
- Revision 13 (2018-02-12)
- Revision 12 (2017-12-17)
- Revision 11 (2017-12-03)
- Revision 10 (2017-11-12)
- Revision 9 (2017-10-15)
- Revision 8 (2017-09-17)
- Revision 7 (2017-09-14)
- Revision 6 (2017-08-24)
- Revision 5 (2017-08-13)
- Revision 4 (2017-07-22)
- Revision 3 (2017-07-09)
- Revision 2 (2017-07-02)
- Revision 1 (2017-06-09)
Authors have earned$9,894,850writing, publishing and selling on Leanpub, earning 80% royalties while saving up to 25 million pounds of CO2 and up to 46,000 trees.
Learn more about writing on Leanpub
The Leanpub 45-day 100% Happiness Guarantee
Within 45 days of purchase you can get a 100% refund on any Leanpub purchase, in two clicks.
See full terms
Free Updates. DRM Free.
If you buy a Leanpub book, you get free updates for as long as the author updates the book! Many authors use Leanpub to publish their books in-progress, while they are writing them. All readers get free updates, regardless of when they bought the book or how much they paid (including free).
Most Leanpub books are available in PDF (for computers), EPUB (for phones and tablets) and MOBI (for Kindle). The formats that a book includes are shown at the top right corner of this page.
Finally, Leanpub books don't have any DRM copy-protection nonsense, so you can easily read them on any supported device.
Learn more about Leanpub's ebook formats and where to read them
Top Books
C++ Best Practices
Jason TurnerLevel up your C++, get the tools working for you, eliminate common problems, and move on to more exciting things!
OpenIntro Statistics
David Diez, Christopher Barr, Mine Cetinkaya-Rundel, and OpenIntroA complete foundation for Statistics, also serving as a foundation for Data Science.
Leanpub revenue supports OpenIntro (US-based nonprofit) so we can provide free desk copies to teachers interested in using OpenIntro Statistics in the classroom and expand the project to support free textbooks in other subjects.
More resources: openintro.org.
Functional Design and Architecture
Alexander GraninSoftware Design in Functional Programming, Design Patterns and Practices, Methodologies and Application Architectures. How to build real software in Haskell with less efforts and low risks. The first complete source of knowledge.
C++20
Rainer GrimmC++20 is the next big C++ standard after C++11. As C++11 did it, C++20 changes the way we program modern C++. This change is, in particular, due to the big four of C++20: ranges, coroutines, concepts, and modules.
The book is almost daily updated. These incremental updates ease my interaction with the proofreaders.
Atomic Kotlin
Bruce Eckel and Svetlana IsakovaFor both beginning and experienced programmers! From the author of the multi-award-winning Thinking in C++ and Thinking in Java together with a member of the Kotlin language team comes a book that breaks the concepts into small, easy-to-digest "atoms," along with exercises supported by hints and solutions directly inside IntelliJ IDEA!
Introductory Statistics with Randomization and Simulation
Mine Cetinkaya-Rundel, Christopher Barr, OpenIntro, and David DiezA complete foundation for Statistics, also serving as a foundation for Data Science, that introduces inference using randomization and simulation while covering traditional methods.
Leanpub revenue supports OpenIntro, so we can provide free desk copies to teachers interested in using our books in the classroom.
More resources: openintro.org.
Java OOP Done Right
Alan MellorObject Oriented Programming is still a great way to create clean, maintainable code. But only if you use it right.
This book gives you 25 years of OO best practice, ready to use.
You'll learn to design objects behaviour-first, use TDD to help, then confidently apply Design Patterns, SOLID principles and Refactoring to make clean, crafted code.
R Programming for Data Science
Roger D. PengThis book brings the fundamentals of R programming to you, using the same material developed as part of the industry-leading Johns Hopkins Data Science Specialization. The skills taught in this book will lay the foundation for you to begin your journey learning data science. Printed copies of this book are available through Lulu.
Ansible for DevOps
Jeff GeerlingAnsible is a simple, but powerful, server and configuration management tool. Learn to use Ansible effectively, whether you manage one server—or thousands.
Composing Software
Eric ElliottAll software design is composition: the act of breaking complex problems down into smaller problems and composing those solutions. Most developers have a limited understanding of compositional techniques. It's time for that to change.
Top Bundles
- #1
Software Architecture for Developers: Volumes 1 & 2 - Technical leadership and communication
2 Books
"Software Architecture for Developers" is a practical and pragmatic guide to modern, lightweight software architecture, specifically aimed at developers. You'll learn:The essence of software architecture.Why the software architecture role should include coding, coaching and collaboration.The things that you really need to think about before... - #2
CCIE Service Provider Ultimate Study Bundle
2 Books
Piotr Jablonski, Lukasz Bromirski, and Nick Russo have joined forces to deliver the only CCIE Service Provider training resource you'll ever need. This bundle contains a detailed and challenging collection of workbook labs, plus an extensively detailed technical reference guide. All of us have earned the CCIE Service Provider certification... - #3
Cisco CCNA 200-301 Complet
4 Books
Ce lot comprend les quatre volumes du guide préparation à l'examen de certification Cisco CCNA 200-301. - #4
CCDE Practical Studies (All labs)
3 Books
CCDE lab - #5
Modern Management Made Easy
3 Books
Read all three Modern Management Made Easy books. Learn to manage yourself, lead and serve others, and lead the organization. - #6
The Future of Digital Health
6 Books
We put together the most popular books from The Medical Futurist to provide a clear picture about the major trends shaping the future of medicine and healthcare. Digital health technologies, artificial intelligence, the future of 20 medical specialties, big pharma, data privacy and how technology giants such as Amazon or Google want to conquer... - #7
Django for Beginners/APIs/Professionals
3 Books
- #8
Linux Administration Complet
4 Books
Ce lot comprend les quatre volumes du Guide Linux Administration :Linux Administration, Volume 1, Administration fondamentale : Guide pratique de préparation aux examens de certification LPIC 1, Linux Essentials, RHCSA et LFCS. Administration fondamentale. Introduction à Linux. Le Shell. Traitement du texte. Arborescence de fichiers. Sécurité... - #9
Advanced Product Management
3 Books
Get The Art of Strategy, Product Discovery and Lean Product Management with a 20% discount. - #10
C++17 in Detail and Lambda Story
2 Books
Get all of my books much cheaper! With this package, you'll learn the exciting things available in C++17 and also understand lambda expressions.