History of ยซ Become a ninja with Angular ยป

The current version of the book uses

  • Angular 19.2.6
  • Angular CLI 19.2.8

List of releases and changes

  • v19.2.02/26/25
    • Signals: advanced topics
      • 2/20/25
        Add a section about httpResource(), introduced in v19.2
      • 2/9/25
        Add a section about resource with a stream and update the rxResource section according to changes in v19.2.
      • 2/7/25
        We can define a defaultValue in a resource in v19.2.
  • v19.1.01/16/25
  • v19.0.011/19/24
    • Signals basics
      • 9/26/24
        New chapter to introduce signal basics at the beginning of the ebook!
    • Reactive Programming
      • 11/7/24
        Rewrite and introduce the interoperability with signals.
    • Building components and directives
      • 10/24/24
        Chapter updated to explain input() and output().
    • Reacting to signal changes
      • 10/24/24
        New chapter about computed and effect and how to use them.
    • Send and receive data with Http
      • 11/19/24
        Showcase how to use toSignal to subscribe.
    • Advanced components and directives
      • 11/19/24
        Use viewChild()/contentChild() instead of decorators.
    • Signals: advanced topics
      • 11/19/24
        New chapter about advanced topics with Signals!
      • 11/19/24
        Add a section about the resource and rxResource functions introduced in v19.
      • 11/19/24
        Add a section about the experimental linkedSignal introduced in v19.
    • Performances
      • 11/19/24
        Rewrite the chapter to use signals and solve a lot of problems our of the box!
  • v18.2.08/15/24
  • v18.1.07/10/24
    • The templating syntax
      • 7/8/24
        Add a section about @let variables, as introduced in Angular v18.1.
    • Building components and directives
      • 6/21/24
        Add a section about afterRender and afterNextRender.
    • Performances
      • 5/31/24
        Refresh the performances chapter regarding the control flow syntax, signals, and the experimental zoneless detection
      • 5/23/24
        Mention the --ssr option of the CLI for Server Side Rendering.
  • v18.0.05/22/24
    • The templating syntax
      • 4/22/24
        The chapter now introduces @if/@for/@switch from the control flow syntax as the recommended way to write templates. We kept a section about *ngIf/*ngFor/*ngSwitch as they are not deprecated and can still be used. All template examples across the ebook now use the control flow syntax.
    • Building components and directives
      • 5/2/24
        Add a section about fallback content for ng-content, as introduced in Angular v18.
    • Forms
      • 5/3/24
        Mention the events observable on FormControl, introduced in Angular v18.
    • Send and receive data with Http
      • 4/27/24
        Mention that HttpClientModule is deprecated in Angular v18.
    • Internationalization
      • 3/16/24
        Add a section about i18n with Transloco and new exercice to go along with it!
  • v17.3.03/14/24
    • Signals
      • 3/8/24
        Add a section about the output() function introduced in v17.3
    • Advanced observables
      • 2/27/24
        Add a section about using subjects as triggers.
  • v17.2.02/15/24
    • Signals
      • 2/13/24
        Add a section about the model() function introduced in v17.2
      • 2/12/24
        Add a section about the queries as signals functions (viewChild()/viewChildren()/contentChild()/contentChildren()) introduced in v17.2
    • Deferred loading with @defer
      • 2/1/24
        The defer block fixture default behavior switched to Playthrough.
  • v17.1.01/18/24
    • Signals
      • 1/17/24
        Add a section about input as signals, as introduced in v17.1
      • 12/23/23
        Mention the new Signals exercise added to the Pro Pack!
      • 12/23/23
        Add a section about how to handle nullable values in signals.
  • v17.0.011/8/23
    • Styling components and encapsulation
      • 11/8/23
        We now use styleUrl when possible, as introduced in Angular v17.
    • Signals
      • 10/12/23
        Remove the mutate method from examples,a s it has been remove in Angular v17.
    • Control flow syntax
      • 10/8/23
        New chapter about the control flow syntax introduced in Angular v17!
    • Deferred loading with @defer
      • 10/30/23
        New chapter about deferred loading with @defer as introduced in Angular v17!
  • v16.2.08/10/23
    • Building components and directives
      • 6/24/23
        Add a section about the transform option of @Input, introduced in Angular v16.1.
  • v16.1.06/14/23
  • v16.0.05/17/23
    • Building components and directives
      • 5/3/23
        Introduce required inputs, as added in Angular v16
    • Router
      • 5/3/23
        Add a section about withComponentInputBinding to get router parameters and data as component inputs, as introduced in Angular v16
    • Signals
      • 5/17/23
        New chapter about Signals!
    • Advanced observables
      • 5/3/23
        Use the takeUntilDestroyed RxJS operator introduced in Angular v16
  • v15.2.02/23/23
    • Router
      • 2/23/23
        As Angular v15.2 deprecates class-based resolvers and guards, we now use functional resolvers and guards in all examples.
  • v15.1.01/11/23
    • Dependency Injection
      • 1/5/23
        Use a better example for DI configuration, with a logging service that logs to the console in development and calls an API in production.
      • 12/1/22
        Add a section about the inject() function.
    • Router
      • 1/11/23
        Remove the section about the CanLoad guard as it is now deprecated (use CanMatch instead).
    • Standalone components
      • 11/30/22
        Add a section about HTTP with provideHttpClient and functional interceptors.
    • Going to production
      • 1/11/23
        Explains how to use ng generate environments.
  • v15.0.011/16/22
    • Dependency Injection
      • 11/16/22
        Remove the providedIn: NgModule syntax now that it is deprecated in Angular v15
    • Router
      • 11/16/22
        The router automatically unwraps default module exports in lazy-loading routes in Angular v15
      • 11/14/22
        Showcases an example of a functional resolver
      • 11/14/22
        Showcases an example of functional guard
    • Standalone components
      • 11/16/22
        Use the NgFor alias introduced in Angular v15 for the NgForOf directive
      • 11/16/22
        The router now automatically unwraps default component exports in lazy-loading routes
    • Going to production
      • 11/16/22
        Replace the explanation of enableProdMode by a section about production mode and mention the ngDevMode variable.
      • 11/16/22
        We now explain how to use fileReplacements as it is no longer included by default in CLI v15.
  • v14.2.08/26/22
    • Standalone components
      • 8/26/22
        Mention provideRouter(routes)
    • Performances
      • 8/26/22
        Mention the experimental NgOptimizedImage directive introduced in v14.2
  • v14.1.07/21/22
    • Router
      • 7/21/22
        Add a section on the new CanMatch guard introduced in v14.1
  • v14.0.06/3/22
    • Forms
      • 6/3/22
        Add a section about FormArray and FormRecord
      • 6/3/22
        Add a section about typed forms
      • 6/3/22
        We nows use and explain the new "strictly typed forms API" ๐Ÿš€
    • Standalone components
      • 6/3/22
        New chapter about standalone APIs!
    • Performances
      • 5/11/22
        Better example of NgZone.runOutsideAngular usage
  • v13.3.03/16/22
  • v13.2.01/27/22
    • Forms
      • 12/14/21
        The forms chapter has a new section about control value accessors, explaining how to create custom form controls
    • Advanced components and directives
      • 12/17/21
        The advanced components chapter has a new section about ng-template, explaining how to create customizable components using conditional, contextual content projection
    • Going to production
      • 1/27/22
        Section about the new extendedDiagnostics option introduced in v13.2
  • v13.1.012/10/21
  • v13.0.011/4/21
    • The templating syntax
      • 11/4/21
        Remove the canonical bind-, on-, ref- syntax that has been deprecated in Angular v13
    • Going to production
      • 11/4/21
        Remove the section about differential loading as it has been removed in Angular v13
      • 11/4/21
        Remove the fullTemplateTypeCheck explanation, as it is deprecated in Angular v13, and only keep its remplacement strictTemplates.
  • v12.2.08/5/21
    • Global
      • 7/29/21
        Add links to our quizzes!
    • Reactive Programming
      • 8/5/21
        RxJS v7.2 allows to import operators directly from rxjs, so all imports have been simplified.
  • v12.1.06/25/21
  • v12.0.05/13/21
    • Global
      • 5/13/21
        All examples now use strict null checks.
    • From zero to something
      • 5/13/21
        The ebook now uses ESLint as its linter.
    • Testing your app
      • 5/13/21
        The e2e tests section now introduces Cypress
    • Send and receive data with Http
      • 5/13/21
        Section about the new HttpContext introduced in Angular v12.
      • 5/13/21
        The HTTP examples now use the human-readable HttpStatusCode enum.
    • Going to production
      • 5/13/21
        The CLI uses the production configuration by default for ng build since v12, and the --prod flag is deprecated.
  • v11.2.02/12/21
  • v11.1.01/21/21
  • v11.0.011/12/20
    • Internationalization
      • 11/12/20
        ng xi18n has been renamed ng extract-i18n in CLI v11
  • v10.2.010/22/20
    • Internationalization
      • 9/10/20
        xi18N now extracts messages from the $localize calls in TypeScript code
  • v10.1.09/3/20
    • Testing your app
      • 9/1/20
        async has been deprecated and renamed waitForAsync
    • Internationalization
      • 7/1/20
        Import the global variants of the locale data. It's simpler, supports all formatting options, and doesn't trigger an optimization bailout warning when building the app with the CLI.
  • v10.0.06/25/20
    • Global
      • 6/25/20
        Bump to ng 10.0.0
    • The wonderful world of Web Components
      • 6/17/20
        Use customElements.define instead of the deprecated document.registerElement.
    • Reactive Programming
      • 6/5/20
        Pass an object as argument to the Observable.subscribe() method when an error or a completion must be handled, instead of 2 or 3 functions, because passing several functions will be deprecated in RxJS 7.
  • v9.1.03/26/20
    • Global
      • 3/26/20
        Bump to ng 9.1.0
    • From zero to something
      • 3/26/20
        Bump to cli 9.1.0
  • v9.0.02/7/20
    • Global
      • 2/7/20
        Bump to ng 9.0.0
      • 2/6/20
        Bump to ng 9.0.0-next.5
    • A gentle introduction to ECMAScript 2015+
      • 8/2/19
        Add a section about tagged template strings.
    • Diving into TypeScript
      • 8/10/19
        Showcase interface usage for modeling entities
      • 8/10/19
        Improve the enum section with examples of how to use union types
    • Advanced TypeScript
      • 8/10/19
        Introduce a new chapter about advanced TypeScript patterns, like keyof, mapped types, type guards, and other things!
    • From zero to something
      • 2/7/20
        Bump to cli 9.0.1
      • 2/6/20
        Bump to cli 9.0.0-next.3
      • 8/30/19
        Bump to cli 8.3.2
      • 8/22/19
        Bump to cli 8.3.0
    • Testing your app
      • 2/6/20
        Use TestBed.inject instead of the deprecated TestBed.get in ng 9.0.0
    • Internationalization
      • 2/7/20
        Explains how to configure the default currency code
      • 2/7/20
        Introduce @angular/localize usage in ng 9.0.0
    • Going to production
      • 2/7/20
        Mention the multiple configurations support introduced in CLI v9.0
      • 2/7/20
        Explain the fullTemplateTypeCheck and strictTemplates options
  • v8.2.08/1/19
    • Global
      • 8/1/19
        Bump to ng 8.2.0
    • From zero to something
      • 8/1/19
        Bump to cli 8.2.0
    • Testing your app
      • 7/31/19
        Use a more strictly typed createSpyObj syntax.
  • v8.1.07/2/19
    • Global
      • 7/2/19
        Bump to ng 8.1.0
    • The wonderful world of Web Components
      • 6/1/19
        Mention more recent alternatives to Polymer, remove the dead HTML import spec and mention Angular Elements
    • From zero to something
      • 7/2/19
        Bump to cli 8.1.0
  • v8.0.05/29/19
    • Global
      • 5/29/19
        Bump to ng 8.0.0
    • A gentle introduction to ECMAScript 2015+
      • 5/19/19
        How to use async/await with promises
    • From zero to something
      • 5/29/19
        Bump to cli 8.0.0
      • 2/28/19
        Bump cli to 7.3.0
    • Testing your app
      • 5/20/19
        Showcase the awesome ngx-speculoos library for cleaner unit tests
    • Forms
      • 5/19/19
        Showcase the awesome ngx-valdemort library for better validation error messages
    • Router
      • 5/20/19
        Use import for lazy-loading routes as introduced by ng 8.0.0
    • Angular compiler
      • 5/20/19
        Update the AoT explanation and generated code for Angular 8.0.0 (Ivy)
    • Advanced components and directives
      • 5/27/19
        Add and explain the static flag for ViewChild and ContentChild introduced by Angular 8.0.0
    • Going to production
      • 5/20/19
        Differential loading using browserslist as introduced by the cli 8.0.0.
  • v7.2.01/9/19
    • Global
      • 1/7/19
        Bump to ng 7.2.0
      • 1/3/19
        Bump to ng 7.2.0-rc.0
      • 12/14/18
        Bump to ng 7.2.0-beta.2
    • From zero to something
      • 1/9/19
        Bump to cli 7.2.0
      • 1/7/19
        Bump to cli 7.2.0-rc.0
      • 1/7/19
        Bump to cli 7.2.0-beta.2
  • v7.1.011/27/18
    • Global
      • 11/22/18
        Bump to ng 7.1.0
      • 11/20/18
        Bump to ng 7.1.0-rc.0
      • 11/5/18
        Bump to ng 7.0.2
    • From zero to something
      • 11/27/18
        Bump to cli 7.1.0
      • 11/5/18
        Bump to cli 7.0.4
    • Router
      • 11/22/18
        Use UrlTree in CanActivate guard, as introduced by 7.1
  • v7.0.010/25/18
    • Global
      • 10/18/18
        Bump to ng 7.0.0
      • 10/18/18
        Bump to ng 7.0.0-rc.1
      • 10/18/18
        Bump to ng 7.0.0-rc.0
      • 10/18/18
        Bump to ng 7.0.0-beta.6
      • 10/18/18
        Bump to ng 7.0.0-beta.4
      • 10/18/18
        Bump to ng 7.0.0-beta.0
    • From zero to something
      • 10/24/18
        Bump to cli 7.0.2
      • 10/18/18
        Bump to cli 7.0.1
      • 9/7/18
        Bump to cli 6.2.1
      • 9/7/18
        Bump to cli 6.2.0-rc.0
    • Performances
      • 8/30/18
        Adds a performances chapter!
    • Going to production
      • 10/25/18
        Adds a new chapter about Going to production!
  • v6.1.07/26/18
    • Global
      • 7/26/18
        Bump to ng 6.1.0
      • 7/26/18
        Bump to ng 6.1.0-rx.0
      • 7/26/18
        Bump to ng 6.1.0-beta.1
      • 7/6/18
        Bump to ng 6.0.7
    • From zero to something
      • 7/26/18
        Bump to cli 6.1.0
      • 7/6/18
        Bump to cli 6.0.8
      • 5/30/18
        Bump cli to 6.0.7
    • Pipes
      • 7/26/18
        Add the keyvalue pipe introduced in Angular 6.1
      • 6/15/18
        Show usage of formatting functions available since Angular 6.0
    • Styling components and encapsulation
      • 7/26/18
        New ShadowDom encapsulation option with Shadow DOM v1 support (the old and soon deprecated Native option uses Shadow DOM v0)
    • Send and receive data with Http
      • 7/6/18
        HTTP tests now use verify every time
    • Router
      • 7/26/18
        Adds the Scroll event and scrollPositionRestoration option introduced in 6.1
    • Advanced observables
      • 7/20/18
        Use shareReplay instead of publishReplay and refCount
    • Internationalization
      • 5/9/18
        Update for CLI 6.0 and use a dedicated configuration
  • v6.0.05/4/18
    • Global
      • 5/4/18
        Bump to ng 6.0.0
      • 4/13/18
        Bump to ng 6.0.0-rc.4
      • 4/5/18
        Bump to ng 6.0.0-rc0
      • 4/5/18
        Bump to ng 6.0.0-beta.7
      • 4/5/18
        Bump to ng 6.0.0-beta.6
      • 4/5/18
        Bump to ng 6.0.0-beta.1
    • The wonderful world of Web Components
      • 1/19/18
        Replace customelements.io by webcomponents.org
    • From zero to something
      • 5/4/18
        Bump to cli 6.0.0
      • 3/19/18
        The chapter now uses Angular CLI from the start!
    • Dependency Injection
      • 4/15/18
        Use providedIn to register services, as recommended for Angular 6.0
      • 3/19/18
        Updates the dependency injection via token section with a better example
    • Reactive Programming
      • 1/28/18
        We now use the pipeable operators introduced in RxJS 5.5
    • Services
      • 4/15/18
        Use providedIn to register the service, as recommended for Angular 6.0
    • Testing your app
      • 4/15/18
        Simplify service unit tests now that they use providedIn from ng 6.0
    • Advanced components and directives
      • 4/5/18
        Angular 6.0+ allows to type ElementRef<T>
    • Advanced observables
      • 4/5/18
        We now use the imports introduced in RxJS 6.0 (import { Observable, of } from 'rxjs')
      • 1/28/18
        We now use the pipeable operators introduced with RxJS 5.5
  • v5.2.01/10/18
    • Global
      • 1/10/18
        Bump to ng 5.2.0
      • 12/7/17
        Bump to ng 5.1.0
    • Building components and directives
      • 12/13/17
        Better lifecycle explanation
    • Forms
      • 12/13/17
        Reintroduce the min and max validators from version 4.2.0, even if they are not available as directives.
    • Send and receive data with Http
      • 12/8/17
        Remove remaining mentions to the deprecated HttpModule and Http
  • v5.0.011/2/17
    • Global
      • 11/2/17
        Bump to ng 5.0.0
      • 11/2/17
        Bump to ng 5.0.0-rc.5
      • 11/2/17
        Bump to ng 5.0.0-rc.3
      • 11/2/17
        Bump to ng 5.0.0-rc.2
      • 11/2/17
        Bump to ng 5.0.0-rc.0
      • 11/2/17
        Bump to ng 5.0.0-beta.6
      • 11/2/17
        Bump to ng 5.0.0-beta.5
      • 11/2/17
        Bump to ng 5.0.0-beta.4
      • 11/2/17
        Bump to ng 5.0.0-beta.1
      • 9/16/17
        Bump to ng 4.4.1
    • Pipes
      • 11/2/17
        Use the new i18n pipes introduced in ng 5.0.0
    • Forms
      • 11/2/17
        Add a section on the updateOn: 'blur' option for controls and groups introduced in 5.0
      • 9/1/17
        Remove the section about combining template-based and code-based approaches
    • Send and receive data with Http
      • 11/2/17
        Use object literals for headers and params for the new http client, introduced in 5.0.0
    • Router
      • 11/2/17
        Adds ng 5.0 ChildActivationStart/ChildActivationEnd to the router events
    • Internationalization
      • 11/2/17
        Remove deprecated i18n comment with ng 5.0.0
      • 11/2/17
        Show how to load the locale data as required in ng 5.0.0 and uses the new i18n pipes
      • 11/2/17
        Placeholders now displays the interpolation in translation files to help translators
  • v4.3.07/16/17
    • Global
      • 7/16/17
        Bump to ng 4.3.0
      • 6/17/17
        Bump to ng 4.2.3
    • Forms
      • 6/17/17
        Remove min/max validators mention, as they have been removed temporarily in ng 4.2.3
    • Send and receive data with Http
      • 7/16/17
        Updates the chapter to use the new HttpClientModule introduced in ng 4.3.0.
    • Router
      • 7/16/17
        List the new router events introduced in 4.3.0
    • Advanced components and directives
      • 6/29/17
        Add a section about HostBinding
      • 6/29/17
        Add a section about HostListener
      • 6/29/17
        New chapter on advanced components, with ViewChild, ContentChild and ng-content!
  • v4.2.06/9/17
    • Global
      • 6/9/17
        Bump to ng 4.2.0
      • 4/28/17
        Bump to ng 4.1.0
    • Forms
      • 6/9/17
        Introduce the min and max validators from version 4.2.0
    • Router
      • 4/28/17
        New chapter on advanced router usage: protected routes with guards, nested routes, resolvers and lazy-loading!
    • Angular compiler
      • 5/2/17
        Adds a chapter about the Angular compiler and the differences between JiT and AoT.
  • v4.0.03/24/17
    • Global
      • 3/24/17
        ๐ŸŽ‰ Bump to stable release 4.0.0 ๐ŸŽ‰
      • 3/23/17
        Bump to 4.0.0-rc.6
      • 3/23/17
        Bump to 4.0.0-rc.5
      • 3/23/17
        Bump to 4.0.0-rc.4
      • 3/23/17
        Bump to 4.0.0-rc.3
      • 3/23/17
        Bump to 4.0.0-rc.1
      • 3/23/17
        Bump to 4.0.0-beta.8
      • 3/23/17
        Bump to ng 4.0.0-beta.7 and TS 2.1+ is now required
      • 3/23/17
        Bump to 4.0.0-beta.5
      • 3/23/17
        Bump to 4.0.0-beta.0
      • 3/22/17
        Each chapter now has a link to the corresponding exercise of our Pro Pack Chapters are slightly re-ordered to match the exercises order.
    • The templating syntax
      • 3/23/17
        Use as, introduced in 4.0.0, instead of let for variables in templates
      • 3/23/17
        The template tag is now deprecated in favor of ng-template in 4.0
      • 3/23/17
        Introduces the else syntax from version 4.0.0
    • Dependency Injection
      • 2/17/17
        Fix the Babel 6 config for dependency injection without TypeScript
    • Pipes
      • 3/23/17
        Introduce the as syntax to store a NgIf or NgFor result, which can be useful with some pipes like slice or async.
      • 3/23/17
        Adds titlecase pipe introduced in 4.0.0
    • Services
      • 3/23/17
        New Meta service in 4.0.0 to get/set meta tags
    • Testing your app
      • 3/23/17
        overrideTemplate has been added in 4.0.0
    • Forms
      • 3/23/17
        Introduce the email validator from version 4.0.0
    • Send and receive data with Http
      • 3/23/17
        Use params instead of the deprecated search in 4.0.0
    • Router
      • 3/23/17
        Use paramMap introduced in 4.0 instead of params
    • Advanced observables
      • 3/23/17
        Shows the as syntax introduced in 4.0.0 as an alternative for the mulitple async pipe subscriptions problem
    • Internationalization
      • 3/23/17
        Add a new chapter on internationalization (i18n)
  • v2.4.41/25/17
    • Global
      • 1/25/17
        Bump to 2.4.4
      • 1/13/17
        The big rename: "Angular 2" is now known as "Angular"
      • 12/21/16
        Bump to 2.4.0
    • Forms
      • 1/9/17
        Fix the NgModel explanation
      • 12/1/16
        Validators.compose() is no longer necessary, we can apply several validators by just passing an array.
  • v2.2.011/18/16
    • Global
      • 11/18/16
        Bump to 2.2.0
      • 10/17/16
        Bump to 2.1.0
      • 10/17/16
        Remove typings and use npm install @types/...
      • 10/1/16
        Use const instead of let and TypeScript type inference whenever possible
      • 9/24/16
        Bump to 2.0.1
    • Testing your app
      • 9/30/16
        Use TestBed.get instead of inject in tests
    • Forms
      • 11/18/16
        Add an async validator example
      • 11/18/16
        Remove the useless (2.2+) .control in templates like username.control.hasError('required').
    • Router
      • 11/18/16
        routerLinkActive can be exported (2.2+).
      • 10/7/16
        We don't need to unsubscribe from the router params in the ngOnDestroy method.
    • Advanced observables
      • 11/3/16
        New chapter on Advanced Observables!
  • v2.0.09/15/16
    • Global
      • 9/15/16
        ๐ŸŽ‰ Bump to stable release 2.0.0 ๐ŸŽ‰
      • 9/14/16
        Bump to rc.7
      • 9/5/16
        Bump to rc.6
    • From zero to something
      • 9/5/16
        Update the SystemJS config for rc.6 and bump the RxJS version
    • Pipes
      • 9/5/16
        Remove the section about the replace pipe, removed in rc.6
  • v2.0.0-rc.58/25/16
    • Global
      • 8/23/16
        Bump to rc.5
      • 7/8/16
        Bump to rc.4
      • 6/28/16
        Bump to rc.3
      • 6/16/16
        Bump to rc.2
      • 6/8/16
        Bump to rc.1
      • 6/8/16
        Code examples now follow the official style guide
    • From zero to something
      • 8/12/16
        Small introduction to NgModule when you start your app from scratch
    • The templating syntax
      • 6/16/16
        Replace the deprecated ngSwitchWhen with ngSwitchCase
    • Dependency Injection
      • 8/15/16
        Introduce modules and their role in DI. Changed the example to use a custom service instead of Http.
      • 6/9/16
        Remove deprecated provide() method and use {provide: ...} instead
    • Pipes
      • 6/16/16
        Date pipe is now fixed in rc.2, no more problem with Intl API
    • Styling components and encapsulation
      • 6/8/16
        New chapter on styling components and the different encapsulation strategies!
    • Services
      • 8/21/16
        Add the service to the module's providers
    • Testing your app
      • 8/15/16
        Tests now use the TestBed API instead of the deprecated TestComponentBuilder one.
      • 7/8/16
        Angular 2 does not provide Jasmine wrappers and custom matchers for unit tests in rc.4 anymore
    • Forms
      • 8/22/16
        Forms now use the new form API (FormsModule and ReactiveFormsModule).
      • 6/16/16
        Warn about forms module being rewritten (and deprecated)
    • Send and receive data with Http
      • 8/21/16
        Add the HttpModule import
      • 6/16/16
        http.post() now autodetects the body type, removing the need of using JSON.stringify and setting the ContentType
    • Router
      • 8/21/16
        Introduce RouterModule
      • 7/8/16
        Update the router to the API v3!
      • 6/16/16
        Warn about router module being rewritten (and deprecated)
    • Changelog
      • 7/25/16
        Mention free updates and web page for obtaining latest version
  • v2.0.0-rc.05/6/16
    • Global
      • 5/3/16
        Bump to rc.0. All packages have changed!
      • 5/3/16
        Bump to beta.17
      • 4/16/16
        Bump to beta.15
      • 4/11/16
        Bump to beta.14
      • 3/19/16
        Bump to beta.11
      • 3/11/16
        Bump to beta.9
      • 3/10/16
        Bump to beta.8
      • 3/4/16
        Bump to beta.7
      • 3/4/16
        Display the Angular 2 version used in the intro and in the chapter "Zero to something".
      • 3/4/16
        Bump to beta.6 (beta.4 and beta.5 were broken)
      • 3/4/16
        Bump to beta.3
      • 3/4/16
        Bump to beta.2
    • Diving into TypeScript
      • 3/4/16
        Use typings instead of tsd.
    • The templating syntax
      • 4/16/16
        *ngFor now also exports a first variable
    • Dependency Injection
      • 3/4/16
        Better explanation of hierarchical injectors
    • Pipes
      • 4/16/16
        A replace pipe has been introduced
    • Reactive Programming
      • 3/4/16
        Observables are not scheduled for ES7 anymore
    • Building components and directives
      • 3/4/16
        Explain how to remove the compilation warning when using @Input and a setter at the same time
      • 3/4/16
        Add an explanation on isFirstChange for ngOnChanges
    • Testing your app
      • 5/3/16
        injectAsync is now deprecated and replaced by async
      • 3/4/16
        Add an example on how to test an event emitter
    • Forms
      • 4/16/16
        A pattern validator has been introduced to make sure that the input matches a regexp
      • 3/4/16
        Add a mnemonic tip to rememeber the [()] syntax: the banana box!
      • 3/4/16
        Examples use module.id to have a relative templateUrl
      • 3/4/16
        Fix error ng-no-form -> ngNoForm
      • 3/4/16
        Fix errors (ngModel) -> (ngModelChange), is-old-enough -> isOldEnough
    • Send and receive data with Http
      • 3/4/16
        Use JSON.stringify before sending data with a POST
      • 3/4/16
        Add a mention to JSONP_PROVIDERS
    • Router
      • 5/6/16
        Introduce the new router (previous one is deprecated), and how to use parameters in URLs!
      • 3/4/16
        RouterOutlet inserts the template of the component just after itself and not inside itself
    • Zones and the Angular magic
      • 5/3/16
        New chapter! Let's talk about how Angular 2 works under the hood! First part is about how AngularJS 1.x used to work, and then we'll see how Angular 2 differs, and uses a new concept called zones.
  • v2.0.0-alpha.471/15/16
    • Global
      • 1/15/16
        First public release of the ebook!