在我的Angular应用程序中,我通过以下方式在控制器中注入依赖项:
function ProcessController ( WidgetService, $scope, $http, $state, SessionService, $mdToast, $mdDialog, $stateParams, CommonService )
{
...
}
ProcessController.$inject = [ 'WidgetService', '$scope', '$http', '$state', 'SessionService', '$mdToast', '$mdDialog', '$stateParams', 'CommonService' ];
angular.module ( 'core' ).controller ( 'ProcessController', ProcessController );
在某些控制器中,它运行良好但在其中一些控制器中无法识别依赖关系。所以,如果我把它改成这样,那就再次运作良好。
function ProcessController(WidgetService,$scope,$http,$state, SessionService,$mdToast,$mdDialog,$stateParams,CommonService)
{
...
}
angular.module ('core').controller (['WidgetService','$scope','$http','$state','SessionService','$mdToast','$mdDialog','$stateParams','CommonService',ProcessController]);
所以我想知道为什么我的$inject
依赖注入失败了?
我遇到的一个用例是,通过使用第一种方法,我在控制器中得到$stateParams
为undefined
,但如果我使用第二种方法,我会在其中获得所需的数据。
答案 0 :(得分:0)
按顺序排列
定义/声明模块
将控制器声明为angular
注入依赖项
定义控制器
经验法则应在您将控制器声明为角度
之后进行 function ProcessController ( WidgetService, $scope, $http, $state, SessionService, $mdToast, $mdDialog, $stateParams, CommonService ) {
...
}
angular.module ( 'core' ).controller ( 'ProcessController', ProcessController );
ProcessController.$inject = [ 'WidgetService', '$scope', '$http', '$state', 'SessionService', '$mdToast', '$mdDialog', '$stateParams', 'CommonService' ];
答案 1 :(得分:-2)
您需要指定控制器的名称:
angular.module ('core')
.controller('ProcessController',['WidgetService', ...,'CommonService',ProcessController]);