AngularJS Module#config Module#runについて
configとrunメソッドについてメモ
リファレンス
https://code.angularjs.org/1.4.7/docs/api/ng/type/angular.Module#config
仮引数はfuncitonのみ、factoryなどにある文字列とかはない=DIするものではないということですね
これらはModule Methodsに位置づけられています
https://code.angularjs.org/1.4.7/docs/guide/di#module-methods
Module#config
configはモジュール読み込み時に実行される
Module#run
runはモジュール読み完了時に実行される
検証 moduleを読み込まない場合
// script.js var myModule = angular.module('myModule', []); myModule .config(function () { console.log("myModule#config"); }) .run(function () { console.log("myModule#run"); }); var app = angular.module('myapp', []); app .config(function () { console.log("myapp#config"); }) .run(function () { console.log("myapp#run"); }); app.controller('myController', function(){ console.log("myapp#myController"); });
この場合、結果は以下のようになります
定義しただけで読み込まないのでそりゃそうですね
myapp#config myapp#run myapp#myController
検証 入れ子で読み込む場合
// script.js var myModule = angular.module('myModule', []); myModule .config(function () { console.log("myModule#config"); }) .run(function () { console.log("myModule#run"); }); var app = angular.module('myapp', ['myModule']); app .config(function () { console.log("myapp#config"); }) .run(function () { console.log("myapp#run"); }); app.controller('myController', function(){ console.log("myapp#myController"); });
この場合、結果は以下のようになります
myModuleがすべて先に来るわけではないの注意かも?
実際どうなのかはわかりませんが、myModuleのrun実行時にmyappのconfigで何か変更が加えられる可能性があるかもしれません
myModule#config myapp#config myModule#run myapp#run myapp#myController