大家一般用angular的$controller的時候都是用如下的方式:
angular.module('app',[])
.controller('appController',function{})
這樣的方式是讓angular自動去尋找程序的入口ng-app溜族,然后自動解析依賴注入,并且聲成實例。
其實在angular內(nèi)部執(zhí)行過程如下
//使用注射器加載應(yīng)用
var injector=angular.injector(['ng','app']);
//通過注入器加載$controller服務(wù)
var $controller=injector.get('$controller');
var scope=injector.get('$rootScope').$new();
//加載控制器并傳入一個作用域全景,同angular在運行時的一樣
var myController=$controller('appController',{$scope:scope})
這種是通過顯式的注入聲明了依賴關(guān)系艾蓝。
從代碼中可以看出,如果要單獨應(yīng)用$controller這個服務(wù)的情況下粪牲,這種情況比較少古瓤,不如需要在服務(wù)函數(shù)的參數(shù)中動態(tài)的傳入控制器的名字的時候,需要使用$controller,使用的方法就是通過依賴注入取得這個$controller然后傳入落君,需要執(zhí)行的控制器名稱和對應(yīng)的作用域穿香。<p>