Angular Info

Angular2 RC.3の変更点

どうも、らこです。リリースから少し時間が経ってしまいましたが、RC.3の変更点をまとめておきます。

CHANGELOG.md


Bug Fixes

RC.2までの幾つかのバグが修正されました。重要なものだけをピックアップします。

  • change_detection: ChangeDetectorRef reattach should restore original mode (773c349), closes #7078 #7080

ChangeDetectorRef.reattachが常にCheckAlwaysを使用していたバグが修正されました。

  • forms: ngModel should export as ngModel (8e6e90e)

NgModelディレクティブがngFormとしてexportされていたのが修正されました。

RC.2でうまく動かなくなっていたenableProdModeが復活しました。

Features

新しい機能や改善も幾つか含まれています。

  • compiler: make interpolation symbols configurable (@Component config) (#9367) (1b28cf7), closes #9158

Componentデコレータにinterpolationプロパティが追加され、そのコンポーネントのテンプレート中でのInterpolationのシンボルが変更できるようになりました。
この機能は私が実装して、@vicbがしっかりレビューしてくれました。
merge前のちょっとしたミスで私のcommitではなくなってしまいましたがそれはご愛嬌ということで。

  • datePipe: numeric string support (5c8d315)

DatePipeが文字列型の数値を受け付けられるようになりました。

  • QueryList: support index in callbacks (5fe6075), closes #9278

QueryListの各メソッドのコールバックでindexが第2引数に追加されました。

  • radio: support radio button sharing a control (39e0b49)

ラジオボタンに対するngModelが使いやすくなりました。
複数のラジオボタンに対して同じオブジェクトをngModelで渡した時に、選択状態のラジオボタンのvalueがセットされるようになりました。

今までは配列やオブジェクトなどを用いて面倒でしたが、Angular 1と似た書き方になり、とても簡単になりました。

<form>
    <input type="radio" name="food" [(ngModel)]="data.food" value="chicken">
    <input type="radio" name="food"  [(ngModel)]="data.food" value="fish">
    <input type="radio" name="drink" [(ngModel)]="data.drink" value="cola">
    <input type="radio" name="drink" [(ngModel)]="data.drink" value="sprite">
</form>

BREAKING CHANGES

わずかな破壊的変更も含まれています。

  • Parse5Adapter is no longer exported as public API, use serverBootstrap()

Parse5AdapterはこれまでパブリックなAPIでしたが、RC.3からはexportされなくなりました。
代わりにserverBootstrap()関数を呼び出します。


以上、RC.3の変更点でした。RC.2でパフォーマンスの問題を発生させてなければもう少し先になっていたと思いますが、
思っていた以上に深刻な不具合だったので、だいぶ前倒しでRC.3がリリースされました。
RC.4は予定通り、FormsやTestingのAPIの改善が完了してからの落ち着いたリリースになるでしょう。

それではまた。