Angular Info

Angular 2.1.2/2.2.0-beta.1のリリース

どうも、らこです。今週も予定通り新しいバージョンのリリースが行われました。現在リリースされているバージョンは以下のとおりです

latest next
core 2.1.2 2.2.0-beta.1
router 3.1.2 3.2.0-beta.1

それでは今回の注目すべき変更点をまとめます。


2.1.2

Bug Fixes

compiler: walk third party modules (#12453) (a838aba), closes #11889 #12428

サードパーティライブラリが提供するDirectiveを使ったときに、AoTコンパイルで生成されるコードが正しくないimport文を含むバグが修正されました

compiler: use Maps instead of objects in selector implementation (d321b0e)

ComponentやDirectiveのselectorとクラスのマッピングに使っていたオブジェクトを、Mapに置き換えました。
今までは単なるObjectのインスタンスだったので、一部の文字列(constructorなど)は特別な意味をもってしまい、selectorとして使えませんでした。

compiler-cli: assert that all pipes and directives are declared by a module (7221632)

ngcコンパイラが、NgModuleのdeclarationsに含まれていないPipeやDirectiveが見つかったときにも警告を出すようになりました。

http: overwrite already set xsrf header (b4265e0)

リクエストの際に明示的にX-XSRF-TOKENヘッダを設定してある場合はhttpパッケージによって自動的に付与されているものを上書きするように修正されました

router: canDeactivate guards are not triggered for componentless routes (b741853), closes #12375

router: change router not to deactivate aux routes when navigating from a componentless routes (52a853e)

Componentを持たないルートについて、deactivateに関するバグが修正されました。

router: disallow component routes with named outlets (8f2fa0f), closes #11208 #11082

Componentを持たないルートがRouterOutletの名前を指定したときにエラーを出すようになりました。

router: preserve resolve data (6ccbfd4), closes #12306

一度resolveされた値を、ActivatedRouteが保存するようになりました。

その他

ngcによって生成されるngfactoryファイルのサイズを小さくする最適化が行われています。

2.2.0-beta.1

Code Refactoring

upgrade: re-export the new static upgrade APIs on new entry (a26dd28)

upgradeパッケージのAPIをimportするパスが変更されました。

  • downgradeComponent
  • downgradeInjectable
  • UpgradeComponent
  • UpgradeModule

以上のAPIは @angular/upgrade/static からexportされるようになります。

Features

router: export routerLinkActive w/ isActive property (c9f58cf)

RouterLinkActive ディレクティブが routerLinkActive としてテンプレート中でexportされます。
次のようにrouterLinkActiveディレクティブをテンプレート変数として取り出し、isActiveプロパティにアクセスできます。

<a routerLink="/user/bob" routerLinkActive #rla="routerLinkActive">
    Bob {{ rla.isActive ? '(already open)' : ''}}
</a>

今週は追加でいくつか。

記事紹介

Angular 2.1系における、Serviceのデザインパターンです。multi: trueなproviderを使って柔軟な設定を行うサービスを作る方法を紹介しています。
Dependency Injectionの有効な活用法なので参考にすると良いでしょう

最近リニューアルしたTodd Motto氏のブログの新しい記事です。ReactiveFormsのFormGroupに対してカスタムバリデーターを作成、適用する方法を解説しています

その他

  • Angular-CLIの1.0.0-beta.19-3がリリースされました
  • Universalプロジェクトのコアであるplatform-nodeモジュールがAngularの本体に吸収されることになりました
  • 上記と関連して、Core TeamのメンバーによるUniversalへのコントリビューションが増えるとのことです


今週も順調にリリースが進んでいます。また、Universalの開発をCore Teamが加速させるのはとても期待できますね。完成が楽しみです

それではまた来週のリリースで。