Index
A
- access-control-allow-origin header / Cookie-based authentication
- Ahead-of-Time (AoT) compilation
- Ajax button component
- building / Building an Ajax button component
- external components/elements, transcluding / Transcluding external components/elements into a component
- view children / Content children and view children
- content children / Content children and view children
- injected dependencies, tracking with QueryList / Tracking injected dependencies with QueryList
- Angular
- about / Angular basics
- component pattern / The component pattern
- component pattern, using in web applications / Using the component pattern in web applications
- technologies / What's new that enables Angular to use the component pattern?
- and Web Components /
- language support, in Angular / Language support in Angular
- applications, building / The basic steps to building Angular applications
- symbols / Digging deeper
- resources / Resources
- interactions / Angular and server interactions
- testing / Testing in Angular
- Angular 1.5+ component API
- angular2-modal dialog library
- used, for creating custom dialogs / Creating custom dialogs
- Angular app
- application layer / The Angular rendering engine
- rendering layer / The Angular rendering engine
- Angular applications, unit testing
- pipes, unit testing / Unit-testing pipes
- test files, executing / Running our test files
- Angular binding
- one-way binding from model to view / The Angular binding infrastructure
- one-way binding from view to mode / The Angular binding infrastructure
- two-way/bidirectional binding / The Angular binding infrastructure
- Angular change detection
- overview / Angular change detection overview
- triggering / Angular change detection overview
- hierarchical injectors / Hierarchical injectors
- dependency injection, using with @Injectable / Dependency injection with @Injectable
- route changes, tracking with router service / Tracking route changes using the router service
- Angular Command Line Interface (Angular CLI)
- about / Developing our first component, Angular CLI
- reference / Installing Bootstrap, Setting up the build
- code, transpiling / Code transpiling
- documentation, reference / Route configuration
- Angular components
- dependencies, injecting / Injecting AngularJS dependencies into Angular
- Angular directives / Angular directives
- Angular documentation
- Angular event binding infrastructure
- about / The Angular event binding infrastructure
- event bubbling / Event bubbling
- $event object, event binding / Event binding an $event object
- Angular events
- used, for cross-component communication / Cross-component communication using Angular events
- Angular Expo
- URL / Resources
- Angular forms
- about / Angular forms
- template-driven forms / Template-driven and reactive forms, Template-driven forms
- reactive forms / Template-driven and reactive forms, Reactive forms
- Angular validation / Angular validation
- ngModel / ngModel
- workout validation / Workout validation
- workout, saving / Saving the workout
- Angular Google group
- URL / Resources
- AngularJS's Personal Trainer
- setting up, locally / Setting up AngularJS's Personal Trainer locally
- dependencies, identifying / Identifying dependencies
- module loader, setting up / Setting up the module loader
- TypeScript, enabling / Enabling TypeScript
- Angular, adding / Adding Angular
- Angular 2, adding / Adding Angular
- ngUpgrade Library / The ngUpgrade Library
- hybrid app, bootstrapping / Bootstrapping the hybrid app
- Angular components, injecting into AngularJS views / Injecting Angular components into AngularJS views
- first view, migrating to Angular 2 component / Migrating our first view to Angular component
- rules of engagement / Rules of engagement
- migration, learning aspects / Learning
- AngularJS apps, developing for migration
- about / Developing AngularJS apps today for easy migration
- one component per file / One component per file
- inline anonymous functions, avoiding / Avoiding inline anonymous functions
- $scope object, avoiding / Avoiding $scope!
- controller, using as syntax everywhere / Using controller as (controller aliasing) syntax everywhere
- ng-controller, avoiding / Avoiding ng-controller
- Angular 1.5+ component API, using / Building using the AngularJS 1.5+ component API
- AngularJS apps migration
- about / Migrating AngularJS apps
- need for / Should I migrate?
- Angular, advantages / Advantages of Angular
- apps, developing for / Developing AngularJS apps today for easy migration
- content, selecting / What to migrate?
- AngularJS Personal Trainer migration
- performing / Migrating AngularJS's Personal Trainer
- Angular components, registering as directives / Registering Angular components as directives
- start page, migrating / Migrating the start and finish pages
- finish page, migrating / Migrating the start and finish pages
- Angular migration
- preparing for / Preparing for Angular migration
- third-party dependencies, identifying / Identifying third-party dependencies
- Angular modules
- about / Angular modules
- exploring / Exploring Angular modules
- comprehending / Comprehending Angular modules
- Angular performance
- about / Angular performance
- byte size / Byte size
- initial load time / Initial load time and memory utilization
- memory utilization / Initial load time and memory utilization
- Angular rendering engine / The Angular rendering engine
- server-side rendering / Server-side rendering
- work, offloading to web worker / Offloading work to a web worker
- limitations / Offloading work to a web worker
- performant mobile experience / Performant mobile experience
- change detection improvements / Change detection improvements
- Angular router
- about / Angular router
- setup / Routing setup
- Angular security
- about / Angular security
- safe content, trusting / Trusting safe content
- OnChange life cycle event / OnChange life cycle event
- Angular Seed
- about / Seed projects
- URL / Seed projects
- Angular Single Page Application (SPA) infrastructure
- about / The Angular SPA infrastructure
- Angular routing / Angular routing
- Angular router / Angular router
- finish pages, adding / Adding start and finish pages
- start page, adding / Adding start and finish pages
- Angular Starter
- about / Seed projects
- URL / Seed projects
- Angular style guide
- reference / Angular CLI
- Angular team's blog
- Angular testing utilities
- reference / Testing interval and timeout implementations
- Angular Universal
- about / Server-side rendering
- reference / Server-side rendering
- app's root injector / Registering dependencies
- application
- building / Building a new app
- application layer / Angular renderer, the translation layer
- asynchronous data streams / Eventing with EventEmitter
- async pipe / The async pipe
- async validators
- about / Building a remote validator directive
- used, for validating workout names / Validating workout names using async validators
- attribute binding / Attribute binding, Attribute binding
- attribute directives / Attribute directives
- Augury
- reference / Tools
- authentication
- handling / Handling authentication and authorization
- cookie-based authentication / Cookie-based authentication
- token-based authentication / Token-based authentication
- authorization
- handling / Handling authentication and authorization, Handling authorization
- support, adding / Adding authorization support
- user authentication context, sharing / Sharing user authentication context
- routes, restricting / Restricting routes
- content based on roles, rendering / Conditionally rendering content based on roles
- automation / The need for automation
B
- babel / Code transpiling
- barrels
- reference / The import statement
- binding target / Property binding continued...
- bootstrapping / Bootstrapping
- browser developer console / Tools
- build, 7 Minute Workout
- setting up / Setting up the build
- builder services
- fixing / Fixing the builder services
- build setup
- about / Setting up the build
- 7 Minute Workout, download link / Setting up the build
- Angular CLI / Angular CLI
- busy indicator directive
- building / Building a busy indicator directive
- optional dependencies, injecting with @Optional decorator / Injecting optional dependencies with the @Optional decorator
- implementing, with renderer / Implementation one – using renderer
- host binding, in directives / Host binding in directives
- implementing, with host binding / Implementation two - BusyIndicatorDirective with host bindings
C
- change detection
- improvements / Change detection improvements
- about / Change detection
- setting up / Change detection setup
- executing / When does change detection kick in?
- view, updating / When does change detection kick in?
- working / How does change detection work?
- performance / Change detection performance
- change detection performance
- immutable data structures, using / Using immutable data structures
- observables, using / Using Observables
- manual change detection / Manual change detection
- change detector hierarchy / Change detection setup
- child routing / Getting started with Personal Trainer navigation
- class binding / Style and class binding
- classes / ES2015
- class provider / Angular providers
- class token / Dependency tokens
- codelyzer
- reference / Angular CLI
- code organization
- structure / Organizing code
- feature folders / Feature folders
- CoffeeScript / Code transpiling
- complex requests / Cross-origin resource sharing
- component API
- component design pattern / Getting started with Personal Trainer navigation
- component directives / Components
- component file
- import statement / The import statement
- decorator / Decorator
- class, defining / Defining the class
- component pattern
- about / The component pattern
- using, in web applications / Using the component pattern in web applications
- limitations / Why weren't components used before in Angular?
- component properties
- changes, tracking / Tracking changes in the number of tries
- components, unit testing
- about / Unit-testing components
- Angular testing utilities / Angular testing utilities
- dependencies, managing / Managing dependencies in our tests
- dependencies, mocking / Mocking dependencies - workout history tracker
- component styling
- about / Component styling and view encapsulation
- Shadow DOM / Overview of Shadow DOM
- constructor injection / Dependency injection 101
- content children
- about / Content children and view children
- injecting, with @ContentChild / Injecting content children using @ContentChild and @ContentChildren
- injecting, with @ContentChildren / Injecting content children using @ContentChild and @ContentChildren
- content transclusion / Injecting descendant directive(s)
- cookie-based authentication
- about / Cookie-based authentication
- workflow / Cookie-based authentication
- cross-component communication, with Angular events
- exercise progress, tracing with audio / Tracking exercise progress with audio
- Angular directives, building to wrap HTML audio / Building Angular directives to wrap HTML audio
- WorkoutAudioComponent, creating for audio support / Creating WorkoutAudioComponent for audio support
- WorkoutAudioComponent, integrating / Integrating WorkoutAudioComponent
- cross-domain access
- about / Cross-domain access and Angular
- JSON with Padding (JSONP) / Cross-domain access and Angular
- JSONP, used for creating cross-domain requests / Using JSONP to make cross-domain requests
- workout, handling / Handling workouts not found
- Cross-origin Resource Sharing (CORS) / Cross-domain access and Angular, Cross-origin resource sharing, Cookie-based authentication
- Cross-Site Scripting (XSS) / Angular security
- CRUD operations
- performing, on exercise/workouts / Performing CRUD on exercises/workouts
- workout, creating / Creating a new workout
- workout, updating / Updating a workout
- workout, deleting / Deleting a workout
- upstream code, fixing / Fixing the upstream code
- customary Hello Angular app
- about / The customary Hello Angular app – Guess the Number!
- Guess the Number! game, building / Building Guess the Number!
- first component, designing / Designing our first component
- first component, developing / Developing our first component
- Bootstrap, installing / Installing Bootstrap
- files / What do we have so far?
- index.html file / The host file - index.html
- component file / The component file
- module file / The module file
- bootstrapping / Bootstrapping
- executing / We're up and running!
- revisiting / Revisiting our app
- custom element / Custom element
D
- data binding
- about / Data binding
- property binding / Property binding
- event binding / Event binding
- decorators / TypeScript
- dependencies, injecting
- constructor injection / Injecting dependencies with Constructor Injection
- explicit injection, with injector / Explicit injection using injector
- dependencies, registering
- Angular providers / Angular providers
- value providers / Value providers
- factory providers / Factory providers
- dependency injection
- about / Angular dependency Injection, Dependency injection 101
- exploring, in Angular / Exploring dependency injection in Angular
- exploring / Dependency injection in depth
- registering / Registering dependencies
- viewProvider, using / Dependency injection using viewProvider
- dependency token / Dependency tokens
- description panel / Learning more about an exercise
- descriptions and video panels, exercise
- component inputs, providing / Component with inputs
- structural directives / Structural directives
- Angular security / Angular security
- descriptions panels
- adding / Adding descriptions and video panels
- developer guide / Route configuration
- directive injection
- about / Directive injection
- defined on same element / Injecting directives defined on the same element
- directive dependency, injecting from parent / Injecting directive dependency from the parent
- child directive, injecting / Injecting a child directive (or directives)
- descendant directives, injecting / Injecting descendant directive(s)
- directives
- host binding / Host binding in directives
- directives, unit testing
- about / Unit-testing directives
- TestBed class, using / The TestBed class
- remote validator, testing / Testing remote validator
- directives classification
- about / Classifying directives
- component directives / Components
- attribute directives / Attribute directives
- structural directives / Structural directives
- document databases / Setting up the persistence store
- domain-specific language (DSL) / Our first component - WorkoutRunnerComponent, Angular directives
- DOM event object / Pausing an exercise
E
- encapsulation / Shadow DOM and Angular components
- end-to-end (e2e) test framework / Angular CLI
- end-to-end testing
- about / Types of testing, More E2E tests
- writing / Testing – who does it and when?, Writing E2E tests for the app
- performing / Getting started with E2E testing
- Protractor / Introducting Protractor
- Protractor, setting up / Setting up Protractor for E2E testing
- executing / Writing E2E tests for the app
- backend data, setting up / Setting up backend data for E2E testing
- WorkoutRunner, testing / Testing Workout Runner
- managing, page objects used / Using page objects to manage E2E testing
- ES6 iterable interface / Tracking injected dependencies with QueryList
- ES2015 / ES2015, Code transpiling
- event binding / Event binding, Event binding
- event bubbling / Event bubbling
- exercise
- about / Learning more about an exercise
- description panel, adding / Adding descriptions and video panels
- steps, formatting with innerHTML binding / Formatting exercise steps with innerHTML binding
- remaining workout duration, displaying with pipes / Displaying the remaining workout duration using pipes
- Angular pipes / Angular pipes, Pipe chaining
- SecondsToTimePipe, implementing / Implementing a custom pipe - SecondsToTimePipe
- custom pipe, implementing / Implementing a custom pipe - SecondsToTimePipe
- next exercise indicator, adding with ngIf / Adding the next exercise indicator using ngIf
- pausing / Pausing an exercise
- Angular event binding infrastructure / The Angular event binding infrastructure
- two-way binding, with ngModel / Two-way binding with ngModel
- RxJS, adding / Adding the HTTPClient module and RxJS to our project
- workout-service, updating HTTP module used / Updating workout-service to use the HTTPClient module and RxJS
- workout-service, updating RxJS used / Updating workout-service to use the HTTPClient module and RxJS
- getWorkouts(), modifying HTTP module used / Modifying getWorkouts() to use the HTTPClient module
- exercise-related CRUD operations / WorkoutService as a workout and exercise repository
- exercise list pages
- updating / Updating the workout/exercise list pages
- exercises list views / Exercises list views
- expressions / Expressions
F
- factory provider / Factory providers
- factory provider wrapper / Injecting AngularJS dependencies into Angular
- feature module
- creating / First feature module
- form builder API / Reactive forms
- framework, Angular routing infrastructure
- Router / Angular routing
- Routing configuration (Route) / Angular routing
- RouterOutlet component / Angular routing
- RouterLink directive / Angular routing
- Framework code and documentation / Resources
- functional reactive programming (FRP) / The basics of the HTTPClient module
G
- GitHub branches / Migrating AngularJS's Personal Trainer
- Grunt / Setting up the build
- Guess the Number! game
- building / The customary Hello Angular app – Guess the Number!, Building Guess the Number!
- updates, handling with code / Looking at how our code handles updates
- Gulp / Setting up the build
H
- hierarchical injectors
- about / Hierarchical injectors
- component-level dependencies, registering / Registering component-level dependencies
- Angular DI dependency / Angular DI dependency walk
- viewProvider, using / Dependency injection using viewProvider
- host binding
- about / Host binding in directives
- property binding, @HostBinding used / Property binding using @HostBinding
- attribute binding / Attribute binding
- event binding / Event binding
- HTML
- styling, with ngClass and ngStyle / Styling HTML with ngClass and ngStyle
- HTTPClient module / The basics of the HTTPClient module
- HTTP requests
- promises, using / Using promises for HTTP requests
I
- IDE extensions / Tools
- IEX Free Stock API
- reference / Using JSONP to make cross-domain requests
- Immediately Invoked Function Expression (IIFE) / Avoiding inline anonymous functions
- immutable objects/collections / Using immutable data structures
- index.html file
- about / The host file - index.html
- custom element / Custom element
- injector / Exploring dependency injection in Angular
- Injector service / Explicit injection using injector
- interfaces / The component pattern
- interpolation / Interpolation, Interpolations
J
- Jasmine
- setting up, for unit testing / Setting up Karma and Jasmine for unit testing
- Jasmine spies
- used, for verification of method invocation / Using Jasmine spies to verify method invocations
- reference / Using Jasmine spies to verify method invocations
- used, for dependencies verification / Using Jasmine spies to verify dependencies
- JavaScript modules
- reference / Comprehending Angular modules
- JSONP
- used, for creating cross-domain requests / Using JSONP to make cross-domain requests
- JSPM / Setting up the build
K
- Karma
- setting up, for unit testing / Setting up Karma and Jasmine for unit testing
- reference / Setting up Karma and Jasmine for unit testing
- unit tests, debugging / Debugging unit tests in Karma
- Kendo UI for Angular
- URL / Tools
L
- language support, in Angular
- ES2015 / ES2015
- TypeScript / TypeScript
- life cycle hooks/functions / Component lifecycle hooks
- link parameters array / Route parameters
- linter / Angular CLI
- Long Term Support (LTS) / Should I migrate?
- loose-coupling / Getting started with Personal Trainer navigation
M
- 7 Minute Workout
- about / What is 7 Minute Workout?
- reference / What is 7 Minute Workout?
- code base, downloading / Downloading the code base
- build, setting up / Setting up the build
- configuration file, reference / Angular CLI
- model, designing / The 7 Minute Workout model
- app bootstrapping process / App bootstrapping
- start page / Adding start and finish pages
- finish page / Adding start and finish pages
- route configuration / Route configuration
- component views, rendering with router-outlet / Rendering component views with router-outlet
- route navigation / Route navigation
- link parameter array / The link parameter array
- router service, used for component navigation / Using the router service for component navigation
- ActivatedRoute service, used for accessing route params / Using the ActivatedRoute service to access route params
- app, fixing / Fixing the 7 Minute Workout app
- 7 Minute Workout view
- building / Building the 7 Minute Workout view
- Angular 2 binding infrastructure / The Angular binding infrastructure
- interpolations / Interpolations
- property binding / Property binding
- attribute binding / Attribute binding
- class binding / Style and class binding
- style binding / Style and class binding
- attribute directives / Attribute directives
- HTML, styling with ngClass and ngStyle / Styling HTML with ngClass and ngStyle
- microsyntax
- reference / The ever-so-useful NgForOf
- mLab
- model-driven forms
- using / Getting started with reactive forms
- FormBuilder API, using / Using the FormBuilder API
- module file / The module file
- module loading approach / ES2015
- MongoDB
- MongoLab
- monkey patching / When does change detection kick in?
- Mozilla Developer Network (MDN)
- reference / ES2015
N
- NativeScript
- about / Performant mobile experience
- URL / Performant mobile experience
- ngClass directive
- used, for styling HTML / Styling HTML with ngClass and ngStyle
- ngFor directive
- about / The ever-so-useful NgForOf
- performance / NgForOf performance
- ngModel
- about / ngModel, ngModel
- using / ngModel
- using, with input and textarea / Using ngModel with input and textarea
- using, with select / Using ngModel with select
- Angular model state / The Angular model state
- Angular CSS classes / Angular CSS classes
- ngStyle directive
- used, for styling HTML / Styling HTML with ngClass and ngStyle
- ngx-auth library
- reference / Token-based authentication
- ngx-modialog library
- reference / Using the ngx-modialog library
- ngx-translate
- reference / AngularJS directive upgrade
- Node.js
- installation link / Developing our first component
- reference link / Developing our first component
- about / Setting up the build
- Node.js plugin
- reference / Server-side rendering
- npm / Setting up the build
O
- OAuth 2.0 protocol / Token-based authentication
- observables / Eventing with EventEmitter
- observers / Eventing with EventEmitter
- one-time binding / Route navigation
- one-way data binding / Change detection
P
- packages / Setting up the build
- page objects
- about / Using page objects to manage E2E testing
- used, for managing end-to-end testing / Using page objects to manage E2E testing
- persistence store
- setting up / Setting up the persistence store
- Personal Trainer app
- problem scope / The Personal Trainer app - the problem scope
- requisites / Personal Trainer requirements
- model, defining / The Personal Trainer model
- code, starting with / Getting started with the code for Personal Trainer
- using, in Workout Builder services / Using the Personal Trainer model in Workout Builder services
- layout / The Personal Trainer layout
- about / Personal Trainer and server integration
- exercise, loading / Loading exercise and workout data
- workout data, loading / Loading exercise and workout data
- exercise, loading from server / Loading exercise and workout lists from a server
- workout lists, loading from server / Loading exercise and workout lists from a server
- workout list pages, updating / Updating the workout/exercise list pages
- exercise list pages, updating / Updating the workout/exercise list pages
- server data, mapping to application models / Mapping server data to application models
- exercise and workout data, loading from server / Loading exercise and workout data from the server
- builder services, fixing / Fixing the builder services
- resolvers, updating / Updating the resolvers
- Workout and Exercise components, fixing / Fixing the Workout and Exercise components
- Personal Trainer navigation
- lazy loading, of routes / Conventions used, Lazy loading of routes
- routes, using / Personal Trainer navigation with routes
- child routes, introducing to Workout Builder / Introducing child routes to Workout Builder
- child routing component, adding / Adding the child routing component
- WorkoutBuilder component, updating / Updating the WorkoutBuilder component
- Workout Builder module, updating / Updating the Workout Builder module
- app.routes, updating / Updating App Routing module
- implementing / Putting it all together
- sub-level navigation, integrating with side-level navigation / Integrating sub- and side-level navigation
- Personal Trainer navigation, with routes
- starting with / Getting started with Personal Trainer navigation
- lazy loading, of routes / Lazy loading of routes
- routes, lazy loading / Lazy loading of routes
- pipe
- about / Our first component - WorkoutRunnerComponent
- used, for filtering history data / Sorting and filtering history data using pipes
- orderBy pipe / The orderBy pipe
- search pipe / Pipe chaining with search pipe
- gotcha, with arrays / Pipe gotcha with arrays
- Plunker
- URL / Directive injection
- prefight request / Fixing the upstream code
- prerendering / Server-side rendering
- promises
- used, for HTTP requests / Using promises for HTTP requests
- property binding
- about / Property binding, Property binding
- versus attribute binding / Property versus attribute
- example / Property binding continued...
- interpolation syntactic sugar / Interpolation syntactic sugar over property binding
- quick expression evaluation / Quick expression evaluation
- side-effect-free binding expressions / Side effect-free binding expressions
- Angular directives / Angular directives
- target selection / Target selection for binding
- property injection / Dependency injection 101
- Protractor
- about / Getting started with E2E testing, Introducting Protractor
- reference / Introducting Protractor
- setting, up for E2E testing / Setting up Protractor for E2E testing
- pushstate API / Pushstate API and server-side url-rewrites
- pushstate mechanism / Route configuration
Q
- QueryList
R
- Reactive Extensions for JavaScript (RxJS) / Adding the HTTPClient module and RxJS to our project
- reactive forms
- about / Template-driven and reactive forms, Reactive forms
- using / Getting started with reactive forms
- FormBuilder API, using / Using the FormBuilder API
- form model, adding to HTML view / Adding the form model to our HTML view
- form controls, adding to form inputs / Adding form controls to our form inputs
- validation, adding / Adding validation
- dynamic form controls, adding / Adding dynamic form controls
- saving / Saving the form
- custom validators / Custom validators
- custom validator, integrating into / Integrating a custom validator into our forms
- configuration options, for validation execution / Configuration options for running validation
- ReactNative
- about / Performant mobile experience
- URL / Performant mobile experience
- remote validator directive
- building / Building a remote validator directive
- workout names, validating with async validator / Validating workout names using async validators
- renderer
- used, for implementing busy indicator directive / Implementation one – using renderer
- using, as translation layer / Angular renderer, the translation layer
- rendering layer / Angular renderer, the translation layer
- Rollup
- URL / Byte size
- root component / Comprehending Angular modules
- root injector / Registering component-level dependencies
- root module / The module file
- route guards
- about / Route guards
- resolve route guard, implementing / Implementing the resolve route guard
- route parameters / Route parameters
- router
- reference / Tracking route changes using the router service
- routing configurations / Getting started with Personal Trainer navigation
- rules of engagement, AngularJS's Personal Trainer migration
- about / Rules of engagement
- AngularJS directives and Angular 2 components / AngularJS directives and Angular components
- resource sharing and dependency injection / Resource sharing and dependency injection
- AngularJS service, sharing / Sharing an AngularJS service
- Angular service, sharing / Sharing an Angular service
- change detection / Change detection
- Rx-style programming / Eventing with EventEmitter
- RxJS library / The basics of the HTTPClient module
S
- safe navigation operator / The safe navigation operator
- scaffolding tool / Angular CLI
- seed projects
- about / Seed projects
- Angular Starter / Seed projects
- Angular Seed / Seed projects
- server-side rendering / Server-side rendering
- server data
- mapping, to application models / Mapping server data to application models
- server interactions
- about / Angular and server interactions, Personal Trainer and server integration
- persistence store, setting up / Setting up the persistence store
- MongoLab database, seeding / Seeding the database
- services, unit testing
- about / Unit-testing services
- HTTP request/response, mocking with HttpTestingController / Mocking HTTP request/response with HttpTestingController
- shadow-root / Overview of Shadow DOM
- Shadow DOM
- about / Overview of Shadow DOM
- reference / Overview of Shadow DOM
- and Angular components / Shadow DOM and Angular components
- shadow host / Overview of Shadow DOM
- side-level navigation
- integrating, with sub-level navigation / Integrating sub- and side-level navigation
- about / Side navigation
- simple requests / Cross-origin resource sharing
- Single Page Application (SPA)
- capabilities, exploring / Exploring Single Page Application capabilities
- about / Lazy loading of routes
- source expression / Property binding continued...
- spread operator
- reference / The orderBy pipe
- StackBlitz
- Stack Overflow channel
- URL / Resources
- start and finish pages, migrating
- about / Migrating the start and finish pages
- AngularJS directive upgrade / AngularJS directive upgrade
- angular-translate, replacing with ng2-translate / Replacing angular-translate with ngx-translate
- ngDoBootstrap, using for initialization / Using ngDoBootstrap for initialization
- integration step / Integrating the start and finish pages
- start and finish pages, integrating / Integrating the start and finish pages
- angular-translate, avoiding / Getting rid of angular-translate
- state maintenance
- about / Maintaining state
- component, as container / Component as the container for state
- change detection / Change detection
- string tokens / Using InjectionToken, Using string tokens
- structural directives
- about / Structural directives, Component with inputs, Structural directives, Structural directives, Understanding structural directives
- Asterisk (*) / Asterisk (*) in structural directives
- TemplateRef class / TemplateRef
- ViewContainerRef class / ViewContainerRef
- style binding / Style and class binding
- sub-level navigation / Sub-level navigation
- SystemJS / ES2015
T
- technologies
- about / What's new that enables Angular to use the component pattern?
- Web Components / Web Components
- Angular and Web Components /
- template-driven forms
- about / Template-driven forms, Getting started
- ngForm, using / Using NgForm
- ngModel / ngModel
- template expressions
- about / Expressions, Interpolations
- safe navigation operator / The safe navigation operator
- TemplateRef class / TemplateRef
- template reference variables / Creating WorkoutAudioComponent for audio support, Understanding template reference variables
- test files
- naming / Organization and naming of our test files
- organizing / Organization and naming of our test files
- testing
- about / Testing in Angular
- types / Types of testing
- unit testing / Types of testing
- end-to-end testing / Types of testing
- Angular testing ecosystem / The Angular testing ecosystem
- third-party dependencies
- identifying / Identifying third-party dependencies
- jQuery libraries / jQuery libraries
- AngularJS libraries / AngularJS libraries
- Angular 1 libraries / AngularJS libraries
- language choice / Choice of language
- token / Dependency tokens
- token-based authentication / Token-based authentication
- tools
- tracking function / NgForOf performance
- tracuer / Code transpiling
- transclusion / Transcluding external components/elements into a component
- transpilation
- about / ES2015
- build-time transpilation / Code transpiling
- runtime transpilation / Code transpiling
- transpiler / ES2015, Code transpiling
- tree shaking / Building the workout-history-tracker service, Byte size
- two-way binding
- ngModel, using / Two-way binding with ngModel
- type definitions / Enabling TypeScript
- types / TypeScript
- TypeScript
- about / TypeScript, Setting up the build
- reference / Code transpiling
- TypeScript compiler / Code transpiling
- typings / Enabling TypeScript
U
- unit testing
- about / Types of testing
- writing / Testing – who does it and when?
- starting with / Getting started with unit testing
- guidelines / Getting started with unit testing
- Jasmine, testing / Setting up Karma and Jasmine for unit testing
- Karma, setting up / Setting up Karma and Jasmine for unit testing
- Angular applications / Unit-testing Angular applications
- components / Unit-testing components
- WorkoutRunnerComponent / Unit-testing WorkoutRunnerComponent, Unit-testing WorkoutRunner continued...
- starting / Starting unit testing
- debugging, in Karma / Debugging unit tests in Karma
- services / Unit-testing services
- url-rewrite / Pushstate API and server-side url-rewrites
V
- value providers / Value providers
- video panels
- about / Learning more about an exercise
- adding / Adding descriptions and video panels
- component, with input(s) / Component with inputs
- component inputs, providing / Component with inputs
- video playback experience
- fixing / Fixing the video playback experience
- thumbnails, using / Using thumbnails for video
- ngx-modialog library, using / Using the ngx-modialog library
- view children
- about / Content children and view children
- injecting, via @ViewChild / Injecting view children using @ViewChild and @ViewChildren
- injecting, via @ViewChildren / Injecting view children using @ViewChild and @ViewChildren
- ViewContainerRef class
- about / ViewContainerRef
- URL / ViewContainerRef
- view encapsulation / Component styling and view encapsulation
- Visual Studio Code
W
- web applications
- component pattern, using / Using the component pattern in web applications
- Web Components
- about / Web Components, Component styling and view encapsulation
- reference / Web Components
- custom elements / Web Components
- Shadow DOM / Web Components
- templates / Web Components
- HTML imports / Web Components
- WebDriver
- webpack / ES2015, Angular CLI
- web worker / Offloading work to a web worker
- wildcard route / Route configuration
- workout, building
- about / Building a workout
- left nav, finishing / Finishing left nav
- WorkoutBuilderService, adding / Adding WorkoutBuilderService
- exercises, adding with ExerciseNav / Adding exercises using ExerciseNav
- Workout component, implementing / Implementing the Workout component, Route parameters, Implementing the Workout component continued...
- route parameters / Route parameters
- route guards / Route guards
- Workout template, implementing / Implementing the Workout template
- workout, saving
- ngForm, using / More on NgForm
- forms, fixing / Fixing the saving of forms and validation messages
- validation messages, fixing / Fixing the saving of forms and validation messages
- workout-related CRUD operations / WorkoutService as a workout and exercise repository
- Workout and Exercise list pages
- implementing / Implementing workout and exercise lists
- WorkoutService, using as workout and exercise repository / WorkoutService as a workout and exercise repository
- workout and exercise lists implementation
- WorkoutService, as workout and exercise repository / WorkoutService as a workout and exercise repository
- workout and exercise list components / Workout and exercise list components
- workout and exercise list views / Workout and exercise list views
- WorkoutAudioComponent
- creating, for audio support / Creating WorkoutAudioComponent for audio support
- template reference variables / Understanding template reference variables
- template variable assignment / Template variable assignment
- @ViewChild decorator, using / Using the @ViewChild decorator
- @ViewChildren decorator / The @ViewChildren decorator
- WorkoutAudioComponent integration
- about / Integrating WorkoutAudioComponent
- WorkoutRunnerComponent events, exposing / Exposing WorkoutRunnerComponent events
- @Output decorator / The @Output decorator
- eventing, with EventEmitter / Eventing with EventEmitter
- events, raising with WorkoutRunnerComponent / Raising events from WorkoutRunnerComponent
- component communication patterns / Component communication patterns
- parent component, injecting into child component / Injecting a parent component into a child component
- component life cycle events, using / Using component life cycle events
- sibling component interaction, with events / Sibling component interaction using events and template variables
- sibling component interaction, with template variables / Sibling component interaction using events and template variables
- workout building
- WorkoutBuilderService, adding / Adding WorkoutBuilderService
- Workout component, implementing / Implementing the Workout component continued...
- workout history, tracking
- about / Tracking workout history
- service, building / Building the workout-history-tracker service
- WorkoutHistoryTracker service, building / Building the workout-history-tracker service
- WorkoutRunnerComponent, working with / Integrating with WorkoutRunnerComponent
- workout list pages
- updating / Updating the workout/exercise list pages
- WorkoutRunnerComponent
- about / Our first component - WorkoutRunnerComponent
- implementing / Our first component - WorkoutRunnerComponent
- component life cycle hooks / Component lifecycle hooks
- workout history page, adding / Adding the workout history page
- WorkoutRunnerComponent, unit testing
- about / Unit-testing WorkoutRunnerComponent
- component dependencies, setting up / Setting up component dependencies
- dependencies, mocking / Mocking dependencies – workout service, Mocking dependencies - router
- test, configuring with TestBed / Configuring our test using TestBed
- Jasmine spies, used for verifying method invocations / Using Jasmine spies to verify method invocations
- Jasmine spies, used for verifying dependencies / Using Jasmine spies to verify dependencies
- event emitters, testing / Testing event emitters
- interval and timeout implementations, testing / Testing interval and timeout implementations
- workout pause and resume, testing / Testing workout pause and resume
- workouts list views / Workouts list views
- workout validation
- about / Workout validation
- appropriate validation messages, displaying / Displaying appropriate validation messages
- several validation, adding / Adding more validation
- multiple validation messages, managing / Managing multiple validation messages
- custom validation messages, for exercise / Custom validation messages for an exercise
Z
- zone.js / When does change detection kick in?