MVW(Model View Whatever)
JSにおけるDI
オブジェクトをfunctionの中で定義するのではなく、引数として渡すこと。
Scope
ViewとModelをバインドする もの
$で始まるものが多い(自作の場合は付けなくてもOK)
scopeを元にAngularがDIを実行する
Q,どうやってAngularはDIしてるの?
angular.injector().annotate([関数名]);
→Stringの配列として引数が取得される
→名前から判定し、DIが実行される
→サービス名を記述するだけでサービスを利用することができる
Scopeとインターポーレート
$scope.name = '野田雄大';
<div>{{ name }}</div>
この書式でインターポレート(補完)してくれる
Directiveと双方向バインディング
DOMの変更とAngularの管理下に置かれているControllerは双方向バインディングとなっている
イベントループ
JSのイベントを監視する仕組み

SPAはどうやってデータを取得しているのか?
XMLHTTPリクエスト:JSでサーバとの通信を行うAjaxの基幹技術
AngularJSのラッパーメソッドは$http
SPAとハッシュについて
#hogehoge
フラグメント識別子 識別対象がなくてもハッシュが変わるごとにイベントが発火する
その性質を利用して、URL風なハッシュを生成し、それを元に表示するファイルを切り替える
Routing
divタグなどにController名を指定したり指定していたものを、対象のURLに任意のContrller名をAngular側に記述し、バインドする事ができる
これでDOMの一部を別のファイルに差し替えるような事ができる。
scopeオブジェクト以外はシングルトン
scopeはインスタンスを複数生成するので、scopeを複数定義した際に変数名が重複していてもそれぞれ別の参照を持つことになる。
自分で作成したサービスなどもシングルトン
SPAの仕組み