こんにちは、らこです。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
angularCompilerOptions
の debug
が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
が使えるようになりました
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': ''}
});
});
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
Animation DSLに :enter
エイリアスと:leave
エイリアスが実装されました。それぞれvoid => *
と* => void
に対応したエイリアスです。
2.1.0 incremental-metamorphosis
Bug Fixes
@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_ラベルが付けられました。
入れ子になったルートへのナビゲーション時に、親のResolveを待ってから子の遷移が行われるようになりました。
記事紹介
gerardsans氏によるAngular 2の紹介スライドです。最新の内容を踏まえてわかりやすくまとめられているので見てみるとよいでしょう。
毎度のVictor Savkin氏のブログです。routerパッケージのリダイレクトのテクニックがまとめられています。
Angular公式ブログより、今後のバージョニングとリリースに関する記事です。必読です。
angular.ioにAoTコンパイルのクックブックが追加されました
thoughtramブログより、routerパッケージのResolve機能に関する記事です
thoughtramブログよりもうひとつ。Angular 2の双方向データバインディングについてまとめられた記事です。
公式ブログにも書かれているように、今後は毎週新しいバージョンのリリースが続けられます。とはいえベータリリースすべてに追従する必要はないので、おちついて4週間ごとのマイナーアップデートに対応していけばよいでしょう。
それではまた次回のリリースで。