angularのcontroller理解

イシュー

  • angularのコントローラって、modelとviewを制御するもの、ってだけだけど、すんなりあたまに入ってこない

参考

コントローラの役割再考

  • Angularのcontrollerの役割を再考すると、MVC論に収束される。
  • ちなみに、controllerもmodelもserviceもクラス的振る舞いをする。
  • ここでいうクラス的振る舞いとは変数とメソッドを定義できること。
  • じゃあコントローラとモデル(サービス)の違いは?というと、ビューからのエントリーポイントか、コントローラからのエントリーポイントかの違いである。ちなみにサービスもコントローラからのエントリーポイントになる。
  • つまり、ビュー(DOM)→コントローラ→モデル(エンティティへのアクセス) or サービス(ロジック)の役割分担でコードを書くべき

angularのイメージ

  • angularJsのコーディングは、スニペットを作っているイメージ
  • 昔、Visual C++でFormViewにイベントドリブンでロジックを追加していたときの感覚に似ている。(そのときは、コントローラとモデル、サービスは分かれていなかったから厳密に言うと違う)
  • Webフレームワークに慣れすぎていたせいか、url routing = controllerの割当の感覚が強かったが、ajax技術によりviewが複数スニペットに分解されたので、個々のスニペット毎にMVCを作っていくことができるようになった。ということ(Single Page Application)