簡體   English   中英

如何將依賴項注入命名的角度指令控制器?

[英]How to inject dependencies to a named angular directive controller?

如果我有與此問題類似的代碼,將另一個控制器注入指令

angular.module('paramApp', []);

angular.module('paramApp').controller('ParamCtrl', ['$scope', '$http', function($scope, $http) {
   .
   .
   .
}]);

angular.module('deviceApp', ['paramApp']);
angular.module('deviceApp').directive('DeviceDirective', function () {    
    return { 
    .
    .
    .
    controller: 'ParamCtrl' 
    };
});

當我縮小js時,注入的$scope$http依賴項會中斷,如何在創建DeviceDirective時顯式定義ParamCtrl的依賴項,以防止綁定的js出現未捕獲的注入器問題

我對這個問題很晚了,但我會試一試。 語法基於John Papa的Angular樣式指南

首先,您需要一種使控制器可重用的方法。 將其從匿名函數轉換為命名函數,然后將其傳遞給您的angular應用程序,如下所示:

// Named controller function
ParamCtrl function($scope, $http) {
   this.doStuff
}

// Bind it to your app
angular.module('paramApp').controller('ParamCtrl', ['$scope', '$http', ParamCtrl );

// While we are at it, do the same with your directive
DeviceDirective function (controlerParam) {    
    return { 
        ...
        controller: controlerParam
    } 
}

// Bind it to your app
angular.module('deviceApp', ['ParamCtrl', DeviceDirective]);

但是,如果您打算將控制器的范圍傳遞給指令,請參閱fiznool的帖子

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM