角度控制器(服务)的内联注释

时间:2016-07-04 15:52:15

标签: angularjs service controller angular-fullstack

我正在为我的应用程序使用generator-angular-fullstack,并在缩小/丑化我的代码时出现问题。

在缩小我的代码之前我可以使用服务并且它们可以正常工作但之后我收到以下错误:

[$ injector:unpr]未知提供者:aProvider< - a

我读到我需要像这样向我的控制器添加内联注释(以阻止minify进程破坏服务:

app.controller('mainController', ['$scope', '$http', function($scope, $http) {
    $scope.message = 'HOORAY!'; 
}]);  

generator-angular-fullstack创建如下控制器:

(function () {

    class EmployeesearchComponent {

        constructor($scope, $rootScope, $state, $stateParams, elasticservice, $mdDialog) {
            $scope.message = 'HOORAY!'; 
        };
    }

    angular.module('myApp')
        .component('employeesearch', {

            templateUrl: 'app/employeesearch/employeesearch.html',
            controller: EmployeesearchComponent

        });

})();

我应该将服务添加为字符串?

谢谢,

2 个答案:

答案 0 :(得分:0)

我需要在构造函数字段上面添加字符串:

static $ inject = [' $ scope',' $ http']

答案 1 :(得分:0)

另一个解决方案是更改controller键以使数组具有参数'最后的名称和控制器类,如下所示:

[...]

.component('employeesearch', {
  controller: ['$scope', '$rootScope', '$state', '$stateParams', 'elasticservice', '$mdDialog', EmployeesearchComponent]    
});

但是你应该考虑在构建过程中添加这些注释,它会让你的代码更清晰。如果您正在使用 gulp grunt 等构建系统,那么只需在构建脚本中添加一条额外的行即可实现此目的。你可以找到" ng-annotate"。