1. Select controls can now bind to objects

Something we’ve been waiting for since a long time! Select form controls can now bind to objects using [ngValue], while [value] property binding can still be used for primitive values. Using [ngValue] is as easy as:

<select [(ngModel)]="selected">
  <option *ngFor="city of cities" [ngValue]="city">
</select>

This landed in the latest beta.14!

2. injectAsync() soon be deprecated in favour of async()

To improve developer ergonomics when writing tests, injectAsync() is gonna be deprecated in favour of async(). While injectAsync() returns a promise, async() runs in a Zone which doesn’t complete the test until all asynchronous tasks have been completed.

Before:

it('should wait for returned promises', injectAsync([], () => {
  return somePromise.then(() => { expect(true).toEqual(true); });
}));

After:

it('should wait for returned promises', async(() => {
  somePromise.then() => { expect(true).toEqual(true); });
}));

3. XHR implementation that uses template cache

A feature we’re relying on since ages in Angular 1 now landed in Angular 2! A new XHR implementation that first asks the template cache for a response that we might’ve received ealier. Great for testing as it avoids doing an actual XHR.

4. Developer guide chapter: Component styles

There’s a new developer guide chapter on how styling Angular 2 components works! It covers View Encapsulations and loading of styles with relative URLS. Go and read it right here!

5. Cookbook on accessibility in the making

The docs authoring team works hard on a new cookbook about accessibility in Angular 2! Read and review the current work in progress here.