Controller 的angularjs缩小问题

标签 angularjs bundling-and-minification

这个问题不太可能帮助任何 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/

相关文章:

mysql - $http.POST 不适用于 DATETIME 数据类型(AngularJS、Spring 4.2、MySQL、Hibernate)

jquery - 防止 ASP.NET MVC bundle 加载多次

css - YUI CSS 缩小问题

visual-studio - 使用 Visual Studio Web Essentials 捆绑目录

javascript - angular.js 和 html5 如何使用三元运算符?

angularjs - 在 Angular 的 $http 中使用 PUT 方法时向查询字符串添加参数

angularjs - 我们可以从 Visual Studio 任务运行器资源管理器运行 npm start

javascript - 将 JS 错误行号映射到未缩小的非捆绑 Assets 文件

javascript - 如何在 Visual Studio 中捆绑 JavaScript 和 CSS?

javascript - 我正在尝试使用 angularjs 切换表格单元格中的值...我可以使用 ngbind 或 ngmodel 或其他东西吗?