AngularJSアプリケーション開発ガイド

[cover photo]
  • 2014年04月 発行
  • 220ページ
  • ISBN978-4-87311-667-9
  • フォーマット Print PDF ePub mobi
  • 原書: AngularJS

オライリー・ジャパンで書籍を購入:
定価2,592円

Ebook Storeで電子版を購入:
価格2,074円

Web開発者にいま最も支持されているJavaScript MVCフレームワーク「AngularJS」の解説書。定型的な単純作業が繰り返されがちなWeb開発をよりシンプルで楽しいものにしようというのがAngularJSの試みです。本書ではまずAngularJSアプリケーションの構成要素を押さえた上で、AngularJSアプリケーションの開発、テスト、実行手順を解説します。サーバ通信のAPIや考慮するべき点、ディレクティブの仕組みについて解説し、最後にAngularJSのさまざまな活用例を紹介します。GoogleがサポートするAngularJSには、開発メンバーがGoogleのメールやマップ、カレンダーといった大規模Webアプリケーション開発を通して学んだ教訓が凝縮されています。
Ebook版も近日発売予定。

関連書籍

Backbone.jsアプリケーション開発ガイド
JavaScript: The Good Parts
JavaScriptデザインパターン
開眼! JavaScript
ステートフルJavaScript
テスタブルJavaScript
ハイパフォーマンスWebサイト
メンテナブルJavaScript

まえがき

1章 イントロダクション
    1.1 コンセプト
        1.1.1 クライアント側のテンプレート
        1.1.2 MVC(Model View Controller)
        1.1.3 データバインディング
        1.1.4 依存性の注入
        1.1.5 ディレクティブ
    1.2 ショッピングカートの例
    1.3 次の章では

2章  AngularJSアプリケーションの構造
    2.1 AngularJSの呼び出し
        2.1.1 スクリプトの読み込み
        2.1.2 ng-appを使った境界の定義
    2.2 モデル、ビュー、コントローラ
    2.3 テンプレートとデータバインディング
        2.3.1 文字列の表示
        2.3.2 フォームへの入力
        2.3.3 Unobtrusive JavaScript
        2.3.4 リスト、テーブル、その他の繰り返し要素
        2.3.5 表示と非表示の切り替え
        2.3.6 CSSのクラスとスタイル
        2.3.7 src属性と href属性
        2.3.8 Angular式
        2.3.9 コントローラによる UIの責任の分離
        2.3.10 $scopeを通じたモデルのデータの公開
        2.3.11 $watchを使ったモデルの変化への監視
        2.3.12 watch()のパフォーマンス
    2.4 モジュールを使った依存関係の管理
        2.4.1 定義するべきモジュールの個数
    2.5 フィルタを使ったデータ形式の指定
    2.6 ルートと $locationに応じたビューの切り替え
        2.6.1 index.html
        2.6.2 list.html
        2.6.3 detail.html
        2.6.4 controllers.js
    2.7 サーバとの通信
    2.8 ディレクティブを使った DOMの更新
        2.8.1 index.html
        2.8.2 controllers.js
    2.9 入力データの検証
    2.10 次の章では

3章  AngularJSアプリケーションの開発
    3.1 プロジェクトの構成
    3.2 ツール

        3.2.1 IDE 
    3.3 アプリケーションの実行
        3.3.1 Yeomanを使う場合
        3.3.2 Yeomanを使わない場合
    3.4 AngularJSアプリケーションのテスト
        3.4.1 Karma
    3.5 ユニットテスト
    3.6 エンドツーエンドテスト(結合テスト)
    3.7 コードのコンパイル
    3.8 その他の便利なツール
        3.8.1 デバッグ
        3.8.2 Batarang
    3.9 Yeoman(ワークフローの最適化)
        3.9.1 Yeomanのインストール
        3.9.2 AngularJSプロジェクトの新規作成
        3.9.3 サーバの実行
        3.9.4 ルート、ビュー、コントローラの追加
        3.9.5 テストのストーリー
        3.9.6 プロジェクトのビルド
    3.10 AngularJSと RequireJSの統合

4章  AngularJSアプリケーションの内部構造
    4.1 アプリケーション
    4.2 モデルとコントローラそしてテンプレートの関係
    4.3 モデル
    4.4 サービスとディレクティブそしてコントローラ
        4.4.1 サービス
        4.4.2 ディレクティブ
        4.4.3 コントローラ
    4.5 テンプレート
    4.6 テスト
        4.6.1 ユニットテスト
        4.6.2 シナリオテスト

5章 サーバとの通信
    5.1 $httpを使った通信
        5.1.1 リクエストの詳細な設定
        5.1.2 HTTPヘッダーの指定
        5.1.3 レスポンスのキャッシュ
        5.1.4 リクエストやレスポンスの変換
    5.2 ユニットテスト
    5.3 RESTのリソースの扱い
        5.3.1 リソースの宣言
        5.3.2 追加のメソッド
        5.3.3 (本当に必要なのでなければ)コールバックは利用するべきではない
        5.3.4 サーバ呼び出しの簡素化
        5.3.5 リソースのユニットテスト
    5.4 $qとpromise
    5.5 レスポンスの横取り
    5.6 セキュリティに関する注意
        5.6.1 JSONの脆弱性
        5.6.2 XSRF

6章 ディレクティブ
    6.1 ディレクティブと HTMLの構文規則
    6.2 APIの概要
        6.2.1 ディレクティブの名前
        6.2.2 ディレクティブ定義のオブジェクト
        6.2.3 transcludeプロパティ
        6.2.4 compileの関数と linkの関数
        6.2.5 scopeオブジェクト
        6.2.6 DOMの操作
        6.2.7 controllerプロパティ
    6.3 まとめ

7章 その他の便利な機能
    7.1 $location
        7.1.1 HTML5モードと Hashbangモード
    7.2 AngularJSのモジュールのメソッド
        7.2.1 mainメソッドはどこに
        7.2.2 読み込みと依存先の指定
        7.2.3 便利なメソッド
    7.3 $on、$emit、$broadcastを使ったスコープ間の通信
    7.4 cookie
    7.5 国際化とローカライズ
        7.5.1 AngularJSにできること
        7.5.2 国際化とローカライズの仕組み
        7.5.3 考慮するべき点
    7.6 HTMLのサニタイズ
        7.6.1 linkyフィルタ

8章 レシピ集
    8.1 jQueryの datepickerをラップする
        8.1.1 ng-model属性
        8.1.2 selectの関連付け
        8.1.3 selectの呼び出し
        8.1.4 コードの残り部分
    8.2 チームリストアプリケーション(抽出とコントローラ間通信)
        8.2.1 検索フィールド
        8.2.2 コンボボックス
        8.2.3 チェックボックス
        8.2.4 繰り返しの表示
    8.3 ファイルのアップロード
    8.4 Socket.IOの利用
    8.5 シンプルなページ区切り表示のサービス
    8.6 サーバとの通信とログイン
    8.7 おわりに

索引

Feedback

皆さんのご意見をお聞かせください。ご購入いただいた書籍やオライリー・ジャパンへのご感想やご意見、ご提案などをお聞かせください。より良い書籍づくりやサービス改良のための参考にさせていただきます。
[feedbackページへ]