JavaScript MVCフレームワーク「AngularJS 1.2」リリース。要望の多かったアニメーション機能が追加、脆弱なコードを制限するモードも
Googleがオープンソースで開発しているJavaScript MVCフレームワーク「Angular JS」の最新版「AngularJS 1.2」がリリースされました。
JavaScriptのMVCフレームワークはBackbone.jsやEmber.jsなど多くの種類が登場していますが、Backbone.jsやEmber.jsなどが比較的シンプルなフレームワークを指向しているのに対して、AngularJSの特徴はUIバインディングを含むリッチなフレームワークとして開発されていることです(ちなみにAngularJSのWebサイトでは「MVWフレームワーク」と名乗っています。MVWのWはWhateverらしいです)。
AngularJSでは、HTMLにJavaScriptのコードを混ぜ込まなくとも、識別子を差し込むだけで、その識別子に対応したモデルのデータを自動的かつリアルタイムに表示してくれます。逆に、HTMLのフォームに識別子を差し込んでおけば、そのフォームで入力された内容が自動的にモデル内のデータへと反映されるようになっています。
参考:グーグル製のJavaScript MVCフレームワーク「AngularJS」、正式版が公開
AngularJS 1.2では、主に以下の新機能が追加されたと説明されています。
- アニメーションとトランジション
- 改良されたエラーメッセージ
- Strict Contextual Escapingモード
- ng-repeatの重複を防ぐトラック機能
- テンプレート内でコントローラインスタンスにアクセスするための構文としてのコントローラー
- Promise A+準拠
- ngRouteを独自モジュールに分離
要望の多かったアニメーション機能を追加
アニメーションとトランジション機能(以下まとめてアニメーション機能)は、追加モジュール「angular-animate.js」を読み込むことで利用可能にしました。
AngularJS 1.2の機能をGoogleのエンジニアが解説した動画「AngularJS 1.2 and Beyond」によると、AngularJSに対してもっともリクエストが多かった機能の1つがこのアニメーション機能だったそうです。
AngularJS 1.2のアニメーション機能は、AngularJSの宣言的な記述だけでHTMLの要素に対してCSSのアニメーションを実装することができるように作られています。また、もしCSSに対応していないブラウザでは自動的にJavaScriptによる動作にフォールバックするとのこと。
改良されたエラーメッセージと脆弱性への対応
改良されたエラーメッセージについては「Error Message Minification with MinErr」で解説されています。要点を抜粋すると、従来のAngularJSでは以下のような分かりにくいエラーメッセージが表示されるケースがあったと。
Error: 10 $digest iterations reached. Aborting!
at Object.g.$digest
at Object.g.$apply
at Object.d [as invoke]
改良されたエラーメッセージでは、もっと分かりやすいエラーメッセージをダイジェストで表示できるようになります。
Strict Contextual Escapingモード(SCE)については、AngularJSドキュメントの「$sce」に次のような解説があります。
SCE assists in writing code in way that (a) is secure by default and (b) makes auditing for security vulnerabilities such as XSS, clickjacking, etc. a lot easier.
SCEはデフォルトでセキュアなコードを書くのを助けるため、標準でセキュアで、XSSやクリックジャッキングといったセキュリティの脆弱性の検査をとても容易にしてくれる。
脆弱性を持つ可能性があるコードを書かないように制限してくれるモードのようで、AngularJS 1.2ではデフォルトで有効になっているとのこと。
あわせて読みたい
HP、無停止サーバのNonStopシリーズにx86プロセッサ採用を発表。NonStop OSとNonStop SQLも移植へ
≪前の記事
Facebook、分散SQLエンジン「Presto」公開。大規模データをMapReduce/Hiveの10倍効率よく処理すると