chapter 1
- Scope Objects
- Watching Object Properties: $watch and $digest
- Checking for Dirty Values
- Initializing Watch Values
- Getting Notified Of Digest
- Keeping The Digest Going While It Stays Dirty
- Giving Up On An Unstable Digest
- Short-Circuiting The Digest When The Last Watch Is Clean
- Value-Base Dirty-Checking
- NaNs
- Handling Exceptions
- Destroying A Watch
- Summary
chapter 2
- $eval - Evaluating Code In The Context of A Scope
- $apply - Integrating External Code With The Digest Cycle
- $evalAsync - Deferred Execution
- Scheduling $evalAsync from Watch Functions
chapter 3
- The Root Scope
- Making A Child Scope
- Attribute Shadowing
- Separated Watches
- Recursive Digestion
- Digesting The Whole Tree from $apply, $evalAsync, and $applyAsync
- Isolated Scopes
- Substituting The Parent Scope
- Destroying Scopes
- Summary
chapter 4
- Setting Up The Infrastructure
- Detecting Non-Collection Changes
- Detecting New Arrays
- Detecting New Or Removed Items in Arrays
- Detecting Replaced or Reordered Items in Arrays
- Array-Like Objects
- Detecting New Objects
- Detecting New Or Replaced Attributes in Objects
- Detecting Removed Attributes in Objects
- Preventing Unnecessary Object Iteration
- Dealing with Objects that Have A length
- Handing The Old Collection Value To Listeners
- Summary
chapter 5
- Publish-Subscribe Messaging
- Setup
- Registering Event Listeners: $on
- The basics of $emit and $broadcast
- Dealing with Duplication
- Event Objects
- Additional Listener Arguments
- Returning The Event Object
- Deregistering Event Listeners
- Emitting Up The Scope Hierarchy
- Broadcasting Down The Scope Hierarchy
- Including The Current And Target Scopes in The Event Object
- Stopping Event Propagation
- Preventing Default Event Behavior
- Broadcasting Scope Removal
- Disabling Listeners On Destroyed Scopes
- Handling Exceptions
- Summary
chapter 11
- The angular Global
- Initializing The Global Just Once
- The module Method
- Registering A Module
- Getting A Registered Module
- The Injector
- Registering A Constant
- Requiring Other Modules
- Dependency Injection
- Rejecting Non-String DI Tokens
- Binding this in Injected Functions
- Providing Locals to Injected Functions
- Array-Style Dependency Annotation
- Dependency Annotation from Function Arguments
- Strict Mode
- Integrating Annotation with Invocation
- Instantiating Objects with Dependency Injection
- Summary
chapter 12
- The Simplest Possible Provider: An Object with A $get Method
- Injecting Dependencies To The $get Method
- Lazy Instantiation of Dependencies
- Making Sure Everything Is A Singleton
- Circular Dependencies
- Provider Constructors
- Two Injectors: The Provider Injector and The Instance Injector
- Unshifting Constants in The Invoke Queue
- Summary