Index
A
- $apply()
- about / Using safe $apply
- invoking / Using safe $apply, How to do it…, How it works…
- safeApply() method / How to do it…
- anti-pattern awareness / Anti-pattern awareness
- addClass animations
- creating, with ngShow / Creating addClass animations with ngShow, Getting ready, How to do it…
- CSS transitions / CSS transitions
- CSS animation / CSS animation
- JavaScript animation / JavaScript animation
- working / How it works…
- allowInvalid option
- about / The allowInvalid option
- JSFiddle, URL / The allowInvalid option
- angular.element() method
- about / The angular.element() method
- AngularJS
- directives / Introduction
- filters / Introduction
- services / Introduction
- hiding, from user / Hiding AngularJS from the user, How to do it…, There's more…
- about / Introduction, Introduction, Introduction
- landmines, recognizing / Recognizing AngularJS landmines, There's more…, See also
- AngularJS events
- configuring / Configuring and using AngularJS events
- using / Configuring and using AngularJS events
- broadcasting / Broadcasting an event
- emitting / Emitting an event
- event listener, deregistering / Deregistering an event listener
- AngularJS forms
- working with / Working with AngularJS forms, What the form offers you
- state, tracking / Tracking the form state
- validating / Validating the form
- built-in and custom validators / Built-in and custom validators, How it works…
- AngularJS landmines, recognizing
- filters in ng-repeat / Expensive filters in ng-repeat
- large object / Deep watching a large object
- $watchCollection / Using $watchCollection when the index of change is needed
- template watchers, controlling / Keeping template watchers under control
- AngularJS testing
- about / Introduction
- animations
- tackling ways / Introduction
- about / Introduction
- simple fade in/out animation, creating / Creating a simple fade in/out animation, How to do it…, How it works…, There's more…
- enter animations, creating with ngIf / Creating enter animations with ngIf, How to do it…
- leave and concurrent animations, creating with ngView / Creating leave and concurrent animations with ngView, Getting ready, How to do it…, CSS3 transition, CSS3 animation
- move animations, creating with ngRepeat / Creating move animations with ngRepeat, How to do it…
- addClass animations, creating with ngShow / Creating addClass animations with ngShow, Getting ready, How to do it…
- removeClass animations, creating with ngClass / Creating removeClass animations with ngClass, How to do it…
- batched animations, staggering / Staggering batched animations, Getting ready, How to do it…, There's more…
- application
- bootstrapping, manually / Manually bootstrapping an application, Getting ready, How it works…
- watchers, inspecting / Inspecting your application's watchers, How to do it…, There's more…
- optimizing, reference $watch used / Optimizing the application using reference $watch, How it works…, See also
- optimizing, equality $watch used / Optimizing the application using equality $watch, There's more…, See also
- optimizing, $watchCollection used / Optimizing the application using $watchCollection, How it works…, There's more…
- optimizing, $watch deregistration used / Optimizing the application using $watch deregistration, How it works…, See also
- optimizing, with compile phase in ng-repeat / Optimizing the application with the compile phase in ng-repeat, How to do it…, There's more…, See also
- optimizing, track by in ng-repeat used / Optimizing the application using track by in ng-repeat, How it works…, See also
- manipulating / Manipulating your application from the console, There's more…
- scopes, manipulating / Scopes
- services, manipulating / Services
- application file and module organization
- maintaining / Application file and module organization, How to do it…
- one module, one file, and one name approach / One module, one file, and one name
- unified naming and organization convention, selecting / Keep your related files close, keep your unit tests closer
- group by feature / Group by feature, not by component type
- don't fight reusability approach / Don't fight reusability
- example directory structure / An example directory structure
- application templates
- managing / Managing application templates, How to do it…
- string template / The string template
- remote server templates / Remote server templates
- inline templates using ng-template / Inline templates using ng-template
- pre-defined templates, in cache / Pre-defined templates in the cache, How it works…
- array
- populating / Populating with an array
- asynchronous validation, custom form validators
- about / Asynchronous validation
- JSFiddle, URL / Asynchronous validation
- attribute directive
- about / The attribute directive
- advantages / The attribute directive
B
- batched animations
- staggering / Staggering batched animations, Getting ready, How to do it…, There's more…
- bind once
- about / Trimming your watch list with lazy binding, How it works…, Bind once expression universality
- ng-repeat directive / The ng-repeat directive
- isolate scope bindings / Isolate scope bindings
- bindonce / There's more…
- browser global variable
- about / There's more…
- built-in directives
- about / Troublemaker built-in directives
- ngController / ngController
- ngInclude / ngInclude
- ngView / ngView
- ngRepeat / ngRepeat
- ngIf / ngIf
- ngSwitch / ngSwitch
- built-in search filters
C
- $compile service
- about / The $compile service
- *controller as* syntax
- using / The "Controller as" syntax, How to do it…
- benefits / There's more…
- catch() method
- about / The catch() method
- JSFiddle, URL / The catch() method
- chained handlers
- about / Data handoff for chained handlers
- JSFiddle, URL / Data handoff for chained handlers
- rejecting / Rejecting a chained handler
- class directive
- about / The class directive
- comment directive
- about / The comment directive
- compile phase in ng-repeat
- used, for optimizing application / Optimizing the application with the compile phase in ng-repeat, There's more…, See also
- JSFiddle, URL / How to do it…
- config function
- about / How it works…
- controllers
- initializing / DRYing up your controllers, How to do it…, How it works…
- currency filters
- using / Getting ready…, How to do it…, There's more…
- custom AngularJS comments
- creating / Creating custom AngularJS comments, How it works…
- extending / Extensibility
- custom comparators
- used, for filtering / Filtering with custom comparators, How to do it…, How it works…
- custom data filters
- creating / Creating custom data filters, How to do it…, How it works…
- custom form validators
- about / Creating and integrating custom form validators
- synchronous validation / Synchronous validation
- asynchronous validation / Asynchronous validation
- working / How it works…, See also
- custom search filter expression
- custom search filters
- creating / Creating custom search filters, How to do it…
D
- DAMP tests
- writing / Writing DAMP tests, How to do it…, There's more…
- data filters
- date filter
- using / Using the date filter, How to do it…, There's more…
- debounce option
- about / The debounce option
- JSFiddle, URL / The debounce option
- debugging
- with json filter / Debugging using the json filter, How to do it…, There's more…
- decorator
- event bus as / Event bus as a decorator, How it works…
- deferred / Deferreds
- URL / Deferreds
- Descriptive And Meaningful Phrases (DAMP)
- about / Writing DAMP tests
- directed acyclic graph (DAG) / There's more…
- directives
- about / Introduction
- creating / How to do it…
- working through / Working through the directive spectrum, How it works…
- element directive / The element directive
- attribute directive / The attribute directive
- class directive / The class directive
- comment directive / The comment directive
- linking / Linking directives, How to do it…, How it works…, There's more…
- interfacing, isolate scope used / Interfacing with a directive using isolate scope, How to do it…, There's more…
- scope inheritance / Directive scope inheritance, How to do it…, See also
- templating / Directive templating, How to do it…, How it works…
- transclusion / Directive transclusion, How to do it…, How it works…
- DOM
- manipulating / Manipulating the DOM, How it works…
- Domain Specific Language (DSL)
- about / Writing DAMP tests
- Don't Repeat Yourself (DRY)
- about / Writing DAMP tests
- down watched models
- trimming / Trimming down watched models, There's more…, See also
- JSFiddle, URL / How to do it…
- DRY watchers
- creating / Create DRY watchers
E
- E2E tests
- incorporating, in Grunt / Incorporating E2E tests and Protractor in Grunt, How it works…
- executing / Running the test suite
- writing / Writing basic E2E tests, How to do it…, How it works…, There's more…
- about / Writing basic E2E tests
- element directive
- about / The element directive
- element global variable
- about / There's more…
- enter animations
- creating, with ngIf / Creating enter animations with ngIf, How to do it…
- CSS3 transition / CSS3 transition
- CSS3 animation / CSS3 animation
- JavaScript animation / JavaScript animation
- working / How it works…, There's more…
- equality $watch
- used, for optimizing application / Optimizing the application using equality $watch, There's more…, See also
- JSFiddle, URL / How it works…
- event bus
- building / Building an event bus, How to do it…
- basic implementation / Basic implementation
- cleanup / Cleanup
- as service / Event bus as a service
- as decorator / Event bus as a decorator, How it works…
F
- filters
- about / Introduction
- lowercase filters, using / Using the uppercase and lowercase filters, How to do it…, How it works…
- uppercase filters, using / Using the uppercase and lowercase filters, How to do it…, How it works…
- currency filters, using / Using the number and currency filters, How to do it…, See also…
- number filters, using / Using the number and currency filters, How to do it…, See also…
- date filter, using / Using the date filter, How to do it…, There's more…
- json filter, using / Debugging using the json filter, How to do it…, There's more…
- data filters, using / Using data filters outside the template, How it works…
- built-in search filters, using / Using built-in search filters, Getting ready, How it works…
- chaining / Chaining filters, How to do it…, There's more…
- custom data filters, creating / Creating custom data filters, How to do it…, How it works…
- custom search filters, creating / Creating custom search filters, How to do it…
- search filter, building / Building a search filter from scratch, How to do it…, How it works…, See also
- finally() method
- about / The finally() method
- JSFiddle, URL / The finally() method
- finite state machine (FSM)
- form errors
- cleaning up, ngMessages directive used / Cleaning up form errors with ngMessages, There's more…
G
- getterSetter option
- about / The getterSetter option
- JSFiddle, URL / The getterSetter option
- Grunt
- test environment, configuring / Configuring and running your test environment in Yeoman and Grunt, How it works…, There's more…
- test environment, executing / Configuring and running your test environment in Yeoman and Grunt, How it works…, There's more…
- E2E tests, incorporating / Incorporating E2E tests and Protractor in Grunt, How it works…
- Protractor, incorporating / Incorporating E2E tests and Protractor in Grunt, How it works…
- Gruntfile
- modifying / Modifying your Gruntfile
H
- $http
- used, for creating promises / Using promises with $http, How to do it…, How it works…
- JSFiddle, URL / How to do it…
- hack
- about / There's more…
- HTML5 datetime input types
- using / Using HTML5 datetime input types, How to do it…
- <input type= / The <input type="date"> type, The <input type="datetime-local"> type, The <input type="week"> type, The <input type="month"> type
- <input type= / The <input type="time"> type
- JSFiddle, URL / The <input type="month"> type
- working / There's more…
I
- isolate scope
- used, for interfacing with directives / Interfacing with a directive using isolate scope, How to do it…, There's more…
- using / Isolate scope, How to do it…, How it works…
- isolate scope attribute expressions
- JSFiddle, URL / Isolate scope bindings
- isolate scope bindings
- about / Isolate scope bindings
J
- JSFiddle
- JSMin
- using / Don't run with scissors
- JSON files
- commenting / Commenting JSON files, How it works…
- ignored properties, incorporating / Ignored properties
- duplicate properties, incorporating / Duplicate properties
- JSMin, using / Don't run with scissors
- json filter
- using, for debugging / Debugging using the json filter, How to do it…, There's more…
K
- Karma test runner
L
- lazy binding
- used, for trimming, watch list / Trimming your watch list with lazy binding, How it works…, There's more…
- ng-repeat directive / The ng-repeat directive
- isolate scope attribute expressions / Isolate scope bindings
- methods and expressions / Methods and expressions requiring execution
- leave and concurrent animations
- creating, with ngView / Creating leave and concurrent animations with ngView, Getting ready, How to do it…
- CSS3 transition / CSS3 transition
- CSS3 animation / CSS3 animation
- JavaScript animation / JavaScript animation
- working / How it works…
- limitTo filters
- about / Chaining filters
- lowercase filters
M
- mock backend server
- setting up / Setting up a simple mock backend server, How to do it…, See also
- model inputs
- controlling, with ngModelOptions / Controlling model input with ngModelOptions, How to do it…
- move animations
- creating, with ngRepeat / Creating move animations with ngRepeat, How to do it…
- CSS3 transition / CSS3 transition
- CSS3 animation / CSS3 animation
- JavaScript animation / JavaScript animation
- working / How it works…
- about / There's more…
N
- native route resolves
- promises, incorporating into / Incorporating promises into native route resolves, How to do it…, How it works…
- JSFiddle, URL / How to do it…
- nested directives
- interaction between / Interaction between nested directives, How to do it…, How it works…
- nested ui-router resolves
- implementing / Implementing nested ui-router resolves, How it works…
- state promise inheritance / State promise inheritance
- JSFiddle, URL / State promise inheritance
- single-state promise dependencies / Single-state promise dependencies
- ng-bind
- ng-cloak, avoiding with / Using ng-bind instead of ng-cloak, How to do it…
- ng-cloak
- avoiding, with ng-bind / Using ng-bind instead of ng-cloak, How to do it…
- about / Using ng-bind instead of ng-cloak
- ng-repeat directive / How it works…
- about / The ng-repeat directive
- JSFiddle URL / The ng-repeat directive
- ng-strict-di directive
- sanity checking with / Sanity checking with ng-strict-di
- JSFiddle, URL / How to do it…
- ngClass directive
- about / Creating addClass animations with ngShow, Creating removeClass animations with ngClass
- removeClass animations, creating with / Creating removeClass animations with ngClass, How to do it…
- ngController directive / ngController
- ngForm directive
- ngHide directive
- ngIf directive
- enter animations, creating with / Creating enter animations with ngIf, How to do it…
- about / Creating enter animations with ngIf, Creating leave and concurrent animations with ngView
- ngInclude directive / ngInclude
- ngMessage directive
- ngMessages directive
- about / Creating addClass animations with ngShow, Creating removeClass animations with ngClass
- used, for cleaning up form errors / Cleaning up form errors with ngMessages, There's more…, See also
- JSFiddle, URL / How to do it…, There's more…
- ngMockE2E module
- about / There's more…
- ngModel directive
- ngModelOptions
- used, for controlling model inputs / Controlling model input with ngModelOptions, Getting ready
- updateOn option / The updateOn option
- URL / The updateOn option
- debounce option / The debounce option
- allowInvalid option / The allowInvalid option
- getterSetter option / The getterSetter option
- time zone option / The timezone option
- $rollbackViewValue option / The $rollbackViewValue option
- JSFiddle, URL / The $rollbackViewValue option
- working / How it works…, See also
- ngOptions directive
- about / Working with <select> and ngOptions, How to do it…
- array, populating within / Populating with an array
- option values, defining / Explicitly defining the option values
- option model assignment, defining explicitly / Explicitly defining the option model assignment
- option groups, implementing / Implementing option groups
- null options / Null options
- object, populating within / Populating with an object
- option values, defining explicitly / Explicitly defining option values
- ngRepeat directive
- about / Creating enter animations with ngIf, Creating leave and concurrent animations with ngView
- used, for creating move animations / Creating move animations with ngRepeat, How to do it…
- ngShow directive
- addClass animations, creating with / Creating addClass animations with ngShow, Getting ready, How to do it…
- about / Creating addClass animations with ngShow, Creating removeClass animations with ngClass
- ngSwitch directive / ngSwitch
- ngView directive
- about / Creating enter animations with ngIf, Creating leave and concurrent animations with ngView
- leave and concurrent animations, creating with / Creating leave and concurrent animations with ngView, Getting ready, How to do it…
- null option / Null options
- number filters
O
- object
- populating / Populating with an object
- optional nested directive controllers
- option groups
- defining, explicitly / Implementing option groups
- option model assignment
- defining, explicitly / Explicitly defining the option model assignment
- option values
- defining, explicitly / Explicitly defining the option values, Explicitly defining option values
- orderBy filters
- about / Chaining filters
P
- $parse
- using, for property reference / Referencing deep properties safely using $parse, How to do it…, How it works…, There's more…, See also
- Page Object test pattern
- promise.then() method
- about / How to do it…
- promise barriers
- implementing, $q.all() used / Implementing promise barriers with $q.all(), How to do it…, How it works…, There's more…, See also
- promise handlers
- and promises, chaining / Chaining promises and promise handlers, How to do it…
- Promise handlers
- about / Promise handler trees
- JSFiddle, URL / Promise handler trees
- promise notifications
- implementing / Implementing promise notifications, How it works…, There's more…
- JSFiddle, URL / How to do it…, How it works…
- promises
- about / Understanding and implementing a basic promise, Promises, See also
- implementing / How to do it…
- working / How it works…
- deferred / Deferreds
- JSFiddle, URL / Promises
- and promise handlers, chaining / Chaining promises and promise handlers, How to do it…, How it works…, See also
- chained handler data handoff / Data handoff for chained handlers
- chained handler, rejecting / Rejecting a chained handler
- catch() method / The catch() method
- finally() method / The finally() method
- using, $http used / Using promises with $http, How to do it…, How it works…
- using, $resource used / Using promises with $resource, How it works…
- using, Restangular used / Using promises with Restangular, How to do it…, How it works…
- incorporating, into native route resolves / Incorporating promises into native route resolves, How to do it…, There's more…
- promise wrappers
- creating, $q.when() used / Creating promise wrappers with $q.when(), There's more…
- JSFiddle, URL / How to do it…
- Protractor
- about / Understanding Protractor, How it works…
- incorporating, in Grunt / Incorporating E2E tests and Protractor in Grunt, How it works…
- installation / Installation
- Selenium's WebDriver manager / Selenium's WebDriver manager
- Gruntfile, modifying / Modifying your Gruntfile
- configuration file, setting / Setting your Protractor configuration
- publish-subscribe (pub-sub) architecture / Building an event bus
Q
- $q.all()
- used, for implementing promise barriers / Implementing promise barriers with $q.all(), How it works…, There's more…, See also
- URL / How to do it…
- $q.when()
- used, for creating promise wrappers / Creating promise wrappers with $q.when(), See also
R
- $resource
- used, for creating promises / Using promises with $resource, How it works…
- JSFiddle, URL / How to do it…
- $rollbackViewValue option
- about / The $rollbackViewValue option
- recursive directives
- about / Recursive directives, How to do it…, How it works…, There's more…
- $compile service / The $compile service
- angular.element() method / The angular.element() method
- $templateCache / The $templateCache
- redundant parsing
- preventing / Preventing redundant parsing, Getting ready, How to do it…, How it works…
- reference $watch
- used, for optimizing application / Optimizing the application using reference $watch, How it works…, See also
- JSFiddle, URL / How it works…
- remote server templates
- about / Remote server templates
- removeClass animations
- creating, with ngClass / Creating removeClass animations with ngClass
- CSS transitions / CSS transitions
- CSS animation / CSS animation
- JavaScript animation / JavaScript animation
- working / How it works…
- Restangular
- used, for creating promises / Using promises with Restangular, How to do it…, See also
- JSFiddle, URL / How to do it…
S
- $scope.$on() method / How to do it…
- $scope inheritance
- managing / Managing $scope inheritance, How to do it…, There's more…
- $submitted state
- about / Incorporating $touched and $submitted states, The $submitted state, See also
- JSFiddle, URL / The $submitted state
- <select> option
- scope inheritance, directives
- about / Directive scope inheritance, How to do it…, See also
- scopes, application
- manipulating / Scopes
- search filter
- building, from scratch / Building a search filter from scratch, How to do it…, See also
- Selenium's WebDriver manager
- using / Selenium's WebDriver manager
- Selenium WebDriver
- about / How it works…
- service
- event bus as / Event bus as a service
- service constants
- service decorators
- service factories
- using / Using service factories, How to do it…, See also
- about / Using service factories
- service providers
- services
- about / Introduction
- using / Using services, How it works…
- services, application
- manipulating / Services
- service values
- simple fade in/out animation
- creating / Creating a simple fade in/out animation, Getting ready, How to do it…, How it works…, There's more…
- ng-cloak, utilizing / Keeping things clean
- single-state promise dependencies
- about / Single-state promise dependencies
- JSFiddle, URL / Single-state promise dependencies
- slideDown() method
- slideUp() method
- string template
- about / The string template
- synchronous validation, custom form validators
- about / Synchronous validation
- JSFiddle. URL / Synchronous validation
T
- $templateCache
- about / The $templateCache
- $timeout wrapper / Anti-pattern awareness
- $touched state
- template-binding watch expressions
- optimizing / Optimizing template-binding watch expressions, See also
- template watchers / Keeping template watchers under control
- time zone option / The timezone option
- track by $index / How to do it…
- track by in ng-repeat
- used, for optimizing application / Optimizing the application using track by in ng-repeat, How it works…, See also
- JSFiddle, URL / How to do it…
- transclusion, directives
- using / Directive transclusion, How to do it…, How it works…
U
- ui-router framework / How to do it…
- unit tests
- writing / Writing basic unit tests, Getting ready, How it works…
- initializing / Initializing the unit tests
- creating / Creating the unit tests
- controller, initializing / Initializing the controller
- HTTP backend, initializing / Initializing the HTTP backend
- executing / Formally running the unit tests
- universal watch callback
- creating / Creating a universal watch callback, There's more…
- JSFiddle, URL / How to do it…
- updateOn option / The updateOn option
- uppercase filters
V
- validators, AngularJS forms / Built-in and custom validators
W
- $watchCollection
- about / Using $watchCollection when the index of change is needed
- used, for optimizing application / Optimizing the application using $watchCollection, How it works…, There's more…
- JSFiddle, URL / How it works…
- $watch deregistration
- used, for optimizing application / Optimizing the application using $watch deregistration, How it works…, See also
- JSFiddle, URL / How to do it…
- $watchGroup
- used, for combining watchers / Combining watchers with $watchGroup, How it works…
- $watch types
- deploying / Deploying and managing $watch types efficiently, See also
- managing / Deploying and managing $watch types efficiently, See also
- watchers / Watch as little of the model as possible, Use the fewest number of watchers possible
- watch expressions / Keep watch expressions as lightweight as possible
- watch callbacks / Keep the watch callbacks small and light
- DRY watchers, creating / Create DRY watchers
- watch callbacks / Keep the watch callbacks small and light
- watchers
- combining, with $watchGroup / Combining watchers with $watchGroup, How it works…
- watchers, application
- inspecting / Inspecting your application's watchers, How to do it…, How it works…
- JSFiddle, URL / How to do it…
- watch list
- trimming, lazy binding used / Trimming your watch list with lazy binding, How it works…, There's more…
Y
- Yeoman
- test environment, configuring / Configuring and running your test environment in Yeoman and Grunt, How it works…, There's more…
- test environment, executing / Configuring and running your test environment in Yeoman and Grunt, How it works…, There's more…