[英]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.