在angularjs中,我们将参数作为依赖项注入传递。例如,
function checkInCtrl ($scope, $rootScope, $location, $http){ ….. …. }
所以当它缩小时,它变成
function checkInCtrl(a,b,c,d){ }
现在,a,b,c,d将不会被角度和整个代码分别解释为$ scope,$ rootScope,$ location和$ http无法工作。为此,angularjs提供了一种解决方案,即
checkInCtrl.$inject = ['$scope', '$rootScope', $location', '$http'];
我们可以使用上述语法注入不同的依赖项。直到我没有使用一些自定义的角度服务作为依赖项,此方法都有效。例如
如果我有类似的东西
它适用于给定的解决方案,但是如果我有类似的东西
function checkInCtrl ($scope, $rootScope, $location, $http, customService){ ….. …. }
其中,customService类似于
angular.module(customService, ['ngResource']) .factory('abc', function($resource) { return $resource('/abc'); })
它的缩小版本无法正确地用angular解释。
由于我们必须开始进行项目开发活动,因此我们无法花费足够的时间来研究问题,因此开始使用控制器而没有减少它们。那么第一个问题是角度是否存在这样的问题,还是我犯了一些错误,并且由于这个原因而无法正常工作?如果存在这样的问题,该如何解决?
您必须使用基于字符串注入的语法,以确保缩小版本指向良好的依赖关系:
function checkInCtrl ($scope, $rootScope, $location, $http){}
变成:
['$scope', '$rootScope', '$location', '$http', function checkInCtrl ($scope, $rootScope, $location, $http){}]