Angular Info

Angular 2.1.0のリリース

こんにちは、らこです。Angular 2.1.0がリリースされました。正式リリース後はじめてのマイナーアップデートです。
マイナーアップデートまでにはベータリリースと、RCリリースを挟んでいるので、ここでは2.0.1からの重要な変更点をまとめて紹介します。


2.0.2

Bug Fixes

  • compiler: do not embed templateUrl in view factories in non-debug mode. (#11818) (51e1994), closes #11117

angularCompilerOptionsdebug がtrueに設定されていないときはコンパイル後のngfactoryファイルに templateUrl が残らなくなりました

  • compiler: fix :host(tag) and :host-context(tag) (a6bb84e0), closes #11972
  • compiler: fix attribute selectors in :host and :host-context (#12056) (6f7ed32), closes #11917
  • compiler: support @page and @document CSS rules (#11878) (c99ef49), closes #11860
  • compiler: support [attr="value with space"] (bd012ef), closes #6249
  • compiler: support quoted attribute values (7395400), closes #6085

コンポーネントのスタイルに関するバグ修正がいくつか入っています。
また、コンポーネントのスタイル中で @page@document が使えるようになりました

  • forms: properly validate empty strings with patterns (#11450) (e00de0c)

patternバリデーターで空文字列を許可しない正規表現だった場合に空文字列がinvalidになっていなかったバグが修正されました。

it('should error on failure to match empty string', () => {
    expect(Validators.pattern('[a-zA-Z]+')(new FormControl(''))).toEqual({
         'pattern': {'requiredPattern': '^[a-zA-Z]+$', 'actualValue': ''}
    });
});
  • http: remove url params if provided value is null or undefined (#11990) (9cc0a4e)

UrlSearchParamsクラスのsetメソッドや.appendメソッドで、値がnullあるいはundefinedだった時のふるまいが変わりました。

  • set: 与えられたキーのパラメータを削除
  • append: 何もしない

あっさりバグフィックスとして変更されてますが、地味に大きな変更なのでクエリパラメータの組み立てしている部分を見直したほうがいいかもしれません。

2.1.0-beta.0

Features

  • router: add router preloader to optimistically preload routes (5a84982)

routerパッケージにPreloading機能が実装されました。Preloadingについては[前回の記事]()で軽く紹介しています。
また、Victor Savkin氏のブログでも詳しく解説されています。

https://vsavkin.com/angular-router-preloading-modules-ba3c75e424cb

2.1.0-rc.0

Features

  • animations: provide aliases for :enter and :leave transitions (#11991) (e884f48)

Animation DSLに :enterエイリアスと:leaveエイリアスが実装されました。それぞれvoid => ** => voidに対応したエイリアスです。

2.1.0 incremental-metamorphosis

Bug Fixes

  • compiler: validate [@HostBinding](https://github.com/HostBinding) name (#12139) (13ecc14)

@HostBindingに渡されるバインド対象のプロパティ名にバリデーションが入ります。@HostBinding[prop](event)のような記号付きのターゲットが指定できなくなりました。

compiler-cliパッケージのpeerDependenciesからplatform-serverパッケージの記述が消えました。

  • forms: allow optional fields with pattern and minlength validators (#12147) (d22eeb7)
  • forms: properly validate blank strings with minlength (#12091) (f50c1da)

minlengthバリデーターの挙動が修正され、空文字列をinvalidとしなくなりました。空文字列を検出するためにはrequiredバリデーターと併用します。

  • http: fix Headers initialization from Headers and Object (#12106) (f4566f8)

  • platform-browser-dynamic: mark platformBrowserDynamic as stable API (#12154) (bcef5ef)

platform-browser-dynamicパッケージのplatformBrowserDynamic()関数に_stable_ラベルが付けられました。

  • router: parent resolve should complete before merging resolved data (1681e4f), closes #12032

入れ子になったルートへのナビゲーション時に、親のResolveを待ってから子の遷移が行われるようになりました。


記事紹介

gerardsans氏によるAngular 2の紹介スライドです。最新の内容を踏まえてわかりやすくまとめられているので見てみるとよいでしょう。

毎度のVictor Savkin氏のブログです。routerパッケージのリダイレクトのテクニックがまとめられています。

Angular公式ブログより、今後のバージョニングとリリースに関する記事です。必読です。

angular.ioにAoTコンパイルのクックブックが追加されました

thoughtramブログより、routerパッケージのResolve機能に関する記事です

thoughtramブログよりもうひとつ。Angular 2の双方向データバインディングについてまとめられた記事です。


公式ブログにも書かれているように、今後は毎週新しいバージョンのリリースが続けられます。とはいえベータリリースすべてに追従する必要はないので、おちついて4週間ごとのマイナーアップデートに対応していけばよいでしょう。
それではまた次回のリリースで。