AngularJsのcontroller.jsを読んだ際のメモ
controllerSpec.js
$ControllerProvider()
Controllerを生成するサービスを生成する。
registerメソッドを通じてControllerをcontrollersに登録する。
register(name, constructor)
angular.Module.controller(name, constructor);でinvokeQueueに登録される。
injector.jsのloadModules(modulesToLoad)内のrunInvokeQueue(queue)で実行される。
function(expression, locals)
$controllerの実体
Controllerサービスを実装している。
compile.jsで下記のように使用されている。
registerで登録したcontstructorを$injector::instantiate(Type, locals, serviceName)に渡す。
その戻り値をreturnする。