モデル、コントローラ、テンプレートの関係
アプリケーションは、モデルを中心に動く。
コントローラにはビジネスロジックが記述される。
テンプレートが受け持つ事柄は以下の点に限られる。
- モデルの表示
- ユーザーがアプリケーションを操作する方法
- アプリケーションのスタイル設定、要素の表示と非表示の制御
- 入力と出力双方のデータについて、フィルタリングや表示形式の指定
AngularJSのテンプレートは必ずしもMVCパターンでのビューに相当するわけではない。AngularJSのビューは、コンパイルされた実行可能なテンプレートである。つまり、このビューはテンプレートとモデルの組み合わせによって生まれる。
ビジネスロジックやふるまいについては、テンプレートに含まれるべきではない。テンプレートはシンプルに保つべき。
DOMの操作は、コントローラやテンプレートではなく、ディレクティブやサービスで行う。
この章はサンプルコードを読み解くのがメインなので、あまりメモする内容がない(Promiseの説明等、重要な記述はたくさんあるのだけど、文脈に則した説明なので、そこだけを取り出しても意味不明になってしまう)。
サンプルコードは、npm installしてnode web-server.jsしたら、ちゃんと動いた。