带控制器的angularjs缩小问题

带控制器的angularjs缩小问题,angularjs,bundling-and-minification,Angularjs,Bundling And Minification,这是我的控制器: angular.module('domiciliations').controller('mandatsCtrl', ['$scope', 'Domiciliation', 'logger', function ($scope, Domiciliation, logger) { $scope.mandats = Domiciliation.query(); $scope.fullName = function () { return this.

这是我的控制器:

angular.module('domiciliations').controller('mandatsCtrl', ['$scope', 'Domiciliation', 'logger', function ($scope, Domiciliation, logger) {
    $scope.mandats = Domiciliation.query();

    $scope.fullName = function () {
        return this.Person ? 'test' : 'test2'
    }

    $scope.isNextDisabled = function () {
        return false;
    }

    $scope.isPrevDisabled = function () {
        return true;
    }

    $scope.next = function () {
        logger.info("test");
    }
}]);
缩小后,我会得到一个错误:

Error: Unknown provider: nProvider <- n

我认为在控制器函数中声明数组类型的全部目的是避免使用$inject。。。。我错过什么了吗

如果要缩小控制器的JavaScript代码,其所有函数参数也将缩小,依赖项注入器将无法正确识别服务。 有两种方法可以处理角度视图中的缩小

1)Just assign an array with service identifier strings into the $inject property of the controller function
 mandatsCtrl.$inject = ['$scope', 'Domiciliation', 'logger'];

2) Using bracketnotation
var mandatsCtrl= ['$scope', 'Domiciliation','logger' function($scope, $Domiciliation,logger) { /* constructor body */ }];

当它是匿名函数时,您如何执行
mandatsCtrl.$inject…
?你的代码中有一些东西你没有向我们展示。你没有错过任何关于代码缩小的东西,你必须使用以下两种方法中的任何一种approach@Martin哼说得好。在我的代码中没有什么比我在这里展示的更重要的了。我猜javascript并不关心函数不存在,因为它是angular在运行时创建的(我想无论如何…),可能是您在模块上声明了名为
mandatsCtrl
的控制器和同名的全局函数吗?@Martin,好的,您是对的,我忘记了一些文件,而是使用了它,在这里我定义了mandatsCtrl变量。。。我的错。这就是PO所做的(方法2)。当PO重申同样的方法时,这是如何解决PO的问题的?我想解释一下,这里提到的代码不是问题,只是代码的角度有多大minified@Ajay,感谢您的澄清,尽管我已经完全了解了这一切:)我的观点是我确实使用了括号符号,但是我仍然必须使用$inject属性,否则我会得到错误。是的,只需查看这个链接就可以获得angularsite
var mandatsCtrl=['$scope','domicliation','logger',function($scope,$domicliation,logger){/*构造函数体*/}]您忘记为括号符号ex添加“,”在“记录器”和“函数”之间。
1)Just assign an array with service identifier strings into the $inject property of the controller function
 mandatsCtrl.$inject = ['$scope', 'Domiciliation', 'logger'];

2) Using bracketnotation
var mandatsCtrl= ['$scope', 'Domiciliation','logger' function($scope, $Domiciliation,logger) { /* constructor body */ }];