- 履歴一覧
 - 差分 を表示
 - 現在との差分 を表示
 - ソース を表示
 - AngularJS/サービスの状態をビューに反映する へ行く。
  
- 1 (2017-08-03 (木) 11:41:07)
 
 
キーワード†
- AngularJS
 - service
 
したいこと†
サービスに状態を持たせて、この状態に応じてビューの表示を切り替える。また、ビューのクリックイベントによってサービスの状態を更新する。もちろんこれをビューに反映させる。
どうやって†
サービスに状態を取得する関数と変更する関数を定義する。
- fooService#isBar()
 - 状態を取得する。
 - fooService#toggleBar()
 - 状態を変更する。
 
コントローラにこの関数をオブジェクトで保持する。
this.state = {
  isBar: fooService.isBar
};
ng-clickでコントローラからサービスの状態を変更する。
this.toggleBar = function() {
  fooService.toggleBar();
};
ノート†
ng-ifなどで$ctrl.state.isBar()を監視しておけば、ng-clickで状態を変更したタイミングでビューに反映でき(て)る。