这个问题不太可能帮助任何 future 的访客;它只与一个小地理区域、一个特定时刻或一个非常狭窄的情况相关,而这些情况通常不适用于互联网的全局受众。如需帮助使这个问题更广泛地适用,visit the help center .
9年前关闭。
这是我的 Controller :
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
现在,如果我在 Controller 之后包含以下行,那么它可以工作:
mandatsCtrl.$inject = ['$scope', 'Domiciliation', 'logger'];
我认为在 Controller 函数中声明数组类型的全部意义在于避免使用 $inject .... 我错过了什么吗?
最佳答案
如果您要缩小 Controller 的 JavaScript 代码,它的所有函数参数也会被缩小,并且依赖注入(inject)器将无法正确识别服务。
有两种方法可以处理 Angular 缩小
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 */ }];
http://docs.angularjs.org/tutorial/step_05
关于 Controller 的angularjs缩小问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16041318/