Rangle.io logo
Services
  • Web App Development
  • Mobile App Development
  • Tech Stack Migration
  • Development Process Consulting
  • Team Training & Mentorship
Process Work Events Resources About
  • Team
  • Careers
  • Press
Blog Inquire
  • RC5
  • Introduction
  • License
  • Why Angular?
  • The Architect's Guide to Angular
  • EcmaScript 6 and TypeScript Features
    • ES6
      • Classes
      • Refresher on 'this'
      • Arrow Functions
      • Template Strings
      • Inheritance
      • Delegation
      • Constants and Block Scoped Variables
      • ...spread and ...rest
      • Destructuring
      • Modules
    • TypeScript
      • Getting Started With TypeScript
      • Working With tsc
      • Typings
      • Linting
      • TypeScript Features
      • TypeScript Classes
      • Interfaces
      • Shapes
      • Type Inference
      • Type Keyword
      • Decorators
      • Property Decorators
      • Class Decorators
      • Parameter Decorators
  • The JavaScript Toolchain
    • Source Control: git
    • The Command Line
    • Command Line JavaScript: NodeJS
    • Back-End Code Sharing and Distribution: npm
    • Module Loading, Bundling and Build Tasks: Webpack
    • Chrome
  • Bootstrapping an Angular Application
    • Understanding the File Structure
    • Bootstrapping Providers
  • Components in Angular
    • Creating Components
    • Application Structure with Components
      • Passing Data into a Component
      • Responding to Component Events
      • Using Two-Way Data Binding
      • Accessing Child Components from Template
    • Projection
    • Structuring Applications with Components
    • Using Other Components
  • Directives
    • Attribute Directives
      • NgStyle Directive
      • NgClass Directive
    • Structural Directives
      • NgIf Directive
      • NgFor Directive
      • NgSwitch Directives
      • Using Multiple Structural Directives
  • Advanced Components
    • Component Lifecycle
    • Accessing Other Components
    • View Encapsulation
    • ElementRef
  • Observables
    • Using Observables
    • Error Handling
    • Disposing Subscriptions and Releasing Resources
    • Observables vs Promises
    • Using Observables From Other Sources
    • Observables Array Operations
    • Cold vs Hot Observables
    • Summary
  • Angular Dependency Injection
    • What is DI?
    • DI Framework
    • Angular's DI
      • @Inject() and @Injectable
      • Injection Beyond Classes
      • Avoiding Injection Collisions: OpaqueToken
      • The Injector Tree
  • Http
    • Making Requests
    • Catching Rejections
      • Catch and Release
      • Cancel a Request
      • Retry
    • Search with flatMap
    • Enhancing Search with switchMap
    • Requests as Promises
  • Change Detection
    • Change Detection Strategies in Angular 1 vs Angular 2
    • How Change Detection Works
    • Change Detector Classes
    • Change Detection Strategy: OnPush
    • Enforcing Immutability
    • Additional Resources
  • Zone.js
  • Advanced Angular
    • Directives
      • Creating an Attribute Directive
        • Listening to an Element Host
        • Setting Properties in a Directive
      • Creating a Structural Directive
        • View Containers and Embedded Views
        • Providing Context Variables to Directives
    • AoT
      • AoT limitations
      • AoT Configuration
  • Immutable.js
    • What is Immutability?
    • The Case for Immutability
    • JavaScript Solutions
      • Object.assign
      • Object.freeze
    • Immutable.js Basics
      • Immutable.Map
        • Map.merge
      • Nested Objects
        • Deleting Keys
        • Maps are Iterable
      • Immutable.List
      • Performance and Transient Changes
      • Official Documentation
  • Pipes
    • Using Pipes
    • Custom Pipes
    • Stateful Pipes
  • Forms
    • Getting Started
    • Template-Driven Forms
      • Nesting Form Data
      • Using Template Model Binding
      • Validating Template-Driven Forms
    • Reactive/Model-Driven Forms
      • FormBuilder Basics
      • Validating FormBuilder Forms
      • FormBuilder Custom Validation
    • Creating Functional Forms
    • Visual Cues for Users
  • Modules
    • What is an Angular Module?
    • Adding Components, Pipes and Services to a Module
    • Creating a Feature Module
    • Directive Duplications
    • Lazy Loading a Module
    • Lazy Loading and the Dependency Injection Tree
    • Shared Modules and Dependency Injection
    • Sharing the Same Dependency Injection Tree
  • Routing
    • Why Routing?
    • Configuring Routes
    • Redirecting the Router to Another Route
    • Defining Links Between Routes
    • Dynamically Adding Route Components
    • Using Route Parameters
    • Defining Child Routes
    • Controlling Access to or from a Route
    • Passing Optional Parameters to a Route
    • Using Auxiliary Routes
  • State Management
    • Redux and @ngrx
      • Adding @ngrx to your Project
      • Defining your Main Application State
      • Example Application
      • Reading your Application State using Selectors
      • Actions
      • Modifying your Application State by Dispatching Actions
      • Reducers and Pure Functions
      • Reducers as State Management
      • Creating your Application's Root Reducer
      • Configuring your Application
      • Implementing Components
      • Component Architecture
      • Side Effects
      • Getting More From Redux and @ngrx
  • TDD Testing
    • The Testing Toolchain
    • Test Setup
      • Filename Conventions
      • Karma Configuration
      • TestBed Configuration (Optional)
      • Typings
      • Executing Test Scripts
    • Simple Test
    • Using Chai
    • Testing Components
      • Verifying Methods and Properties
      • Injecting Dependencies and DOM Changes
        • Overriding Components for Testing
      • Testing Asynchronous Actions
      • Refactoring Hard-to-Test Code
    • Testing Services
      • Testing Strategies for Services
      • Testing HTTP Requests
        • Using MockBackend
        • Alternative Mocking Strategy
        • Using HttpTestingModule
        • Testing JSONP and XHR Back-Ends
      • Executing Tests Asynchronously
    • Testing Redux
      • Testing Simple Actions
      • Testing Complex Actions
      • Testing Reducers
      • Afterthoughts
  • Migrating Angular 1.x Projects to Angular 2
    • Migration Prep
      • Upgrading To Angular 1.3+ Style
      • Using Webpack
      • Migrating To TypeScript
    • Choosing an Upgrade Path
    • Avoiding Total Conversion
    • Using ng-metadata (Angular 1.x Using 2 Style)
      • Bootstrapping ng-metadata
      • Components and Services
    • Using ng-upgrade (Angular 1.x Coexisting With Angular 2)
      • Order of Operations
      • Replacing Services with TypeScript Classes
      • Bootstrapping ng-upgrade
      • Downgrading Components
      • Upgrading Components
      • Projecting Angular 1 Content into Angular 2 Components
      • Transcluding Angular 2 Components into Angular 1 Directives
      • Injecting Across Frameworks
  • Project Setup
    • Webpack
      • Installation and Usage
      • Loaders
      • Plugins
      • Summary
    • NPM Scripts Integration
  • Angular CLI
    • Setup
    • Creating a New App
    • Serving the App
    • Creating Components
    • Creating Routes
    • Creating Other Things
    • Testing
    • Linting
    • CLI Command Overview
    • Adding Third Party Libraries
    • Integrating an Existing App
  • Accessibility in Angular
    • Why Make my Application Accessible?
    • Key Concerns of Accessible Web Applications
      • Semantic Markup
      • Keyboard Accessibility
      • Visual Assistance
    • Testing for Accessibility
      • Is my Application Readable?
      • Is my Application Predictable?
      • Is my Application Navigable?
      • Testing with Screen Readers
    • Additional Resources
  • Internationalization in Angular
    • What is the process like and how is involved?
    • Marking text in our templates
    • Extracting translation text using the Angular CLI
    • How to import the completed translation files
      • Using the AoT Compiler
      • Using the JiT Compiler
  • Glossary
  • Further Reading And Reference
Powered by GitBook

Additional Resources

Additional Resources

To learn more about change detection, visit the following links (in order of relevance):

  • NgConf 2014: Change Detection (Video)
  • Angular API Docs: ChangeDetectionStrategy
  • Victor Savkin Blog: Change Detection in Angular 2
  • Victor Savkin Blog: Two Phases of Angular 2 Applications
  • Victor Savkin Blog: Angular, Immutability and Encapsulation

results matching ""

    No results matching ""