AngularJSメモ
最近仕事でAngular.js(1.x)を使っていてさっとページを作れるのが楽しい。
SPAアプリ*1はずっと前、インフラエンジニアだった頃に毎朝送られてくるsyslogを解析するHTMLページを(prototype.jsで)作った記憶があるのだけど、その頃にAngularがあればかなり早く作れただろうと思う。*2
ちなみにその会社からは離職したのでsyslog解析ページがその後使われてるかは知らない。
プログラマはいない現場だったので、ふと動かなくなってすぐ捨てられたかもしれない。
- factoryを使っても$rootScopeを使って元の$scopeにアクセスできるので、関数群をfactory側からエクスポート(controllerから見ればインポート)できる
- minifyで変数名が変わってしまうので、DIする際はちゃんと文字列で変数名を書いた方がいい
- Serviceとは「1.x の module.service() ではなくて、ざっくり言うと Directive でないものの総称です」
- 【古い内容です!!!】Angular 2 を試してみた感想とハマりどころ - Qiita
- 1.xにおいても同じだと思う(みんなfactoryなのになんちゃらServiceって名前付けてるし)
受け渡しについては以下の記事がよくまとまっている。
- Angular JS で複数のコントローラ間でモデル(状態や値)を共有する方法 3 種類 - Qiita
- Shared Service (2.4と同じ)
- Parent Scope Sharing
- Pub/Sub (2.5と同じ)
- [AngularJS] 画面遷移時における値の受け渡し方法いろいろ | Developers.IO
- 自前グローバルオブジェクトを使う (いやいや…)
- $rootScope ( 親 $scope ) のプロパティを使う
- $routeParams を使う
- 自前 Service コンポーネントを使う (1.1と同じ)
- $rootScope ( 親 $scope ) の$on(), $broadcast(), $emit() メソッドを使う (1.3と同じ)
- 別に$rootScopeでなくてもいいのでは…