如何防止angularJS控制器缩小

如何防止angularJS控制器缩小,angularjs,controller,minify,Angularjs,Controller,Minify,所以我知道我需要使用[]在缩小之前保护我的代码。例如: app.controller('mainController', ['$scope', function($scope) { $scope.message = 'HOORAY!'; }]); 但是,当我不使用app作为全局变量时,如何做到这一点呢 (function () { 'use strict'; angular .module('app') .controller('loginCtrl', Contro

所以我知道我需要使用
[]
在缩小之前保护我的代码。例如:

app.controller('mainController', ['$scope', function($scope) {
    $scope.message = 'HOORAY!'; 
}]);
但是,当我不使用
app
作为全局变量时,如何做到这一点呢

(function () {
'use strict';

angular
    .module('app')
    .controller('loginCtrl', Controller);

function Controller($scope, authService) {
    var vm = $scope;
    vm.login = function(login_field, password_field) {
        var loginData = {
            login: login_field,
            password: password_field
        };
        authService.login(loginData);
    };
}
})();
如何防止缩小过程中出现问题?

同样的方法:

.controller('loginCtrl', ['$scope', 'authService', Controller]);
(function () {
'use strict';

angular
.module('app')
.controller('loginCtrl', ['$scope', 'authService', function($scope, authService) {
    $scope.login = function(login_field, password_field) {
        var loginData = {
            login: login_field,
            password: password_field
        };
        authService.login(loginData);
    };
}]);
})();
我强烈建议您使用ng annotate,它允许使用简单的语法,并为您将其转换为小型代码。这将使您的代码更简单、更易于阅读,并避免大量错误。

同样的方法:

.controller('loginCtrl', ['$scope', 'authService', Controller]);
(function () {
'use strict';

angular
.module('app')
.controller('loginCtrl', ['$scope', 'authService', function($scope, authService) {
    $scope.login = function(login_field, password_field) {
        var loginData = {
            login: login_field,
            password: password_field
        };
        authService.login(loginData);
    };
}]);
})();

我强烈建议您使用ng annotate,它允许使用简单的语法,并为您将其转换为小型代码。这将使您的代码更简单、更易于阅读,并避免大量的bug。

我认为应该采用相同的方式:

.controller('loginCtrl', ['$scope', 'authService', Controller]);
(function () {
'use strict';

angular
.module('app')
.controller('loginCtrl', ['$scope', 'authService', function($scope, authService) {
    $scope.login = function(login_field, password_field) {
        var loginData = {
            login: login_field,
            password: password_field
        };
        authService.login(loginData);
    };
}]);
})();

我认为应该是同样的方式:

.controller('loginCtrl', ['$scope', 'authService', Controller]);
(function () {
'use strict';

angular
.module('app')
.controller('loginCtrl', ['$scope', 'authService', function($scope, authService) {
    $scope.login = function(login_field, password_field) {
        var loginData = {
            login: login_field,
            password: password_field
        };
        authService.login(loginData);
    };
}]);
})();

当控制器或服务是上述代码中的命名函数时,用
$inject
注释它看起来最好(请参阅)


提升允许将注释放在可注入函数的正上方。

当控制器或服务是上述代码中的命名函数时,使用
$inject
对其进行注释时效果最佳(请参阅)


提升允许将注释放在可注入函数的正上方。

在缩小之前,您可以尝试一种方法,该方法将搜索缩小并用缩小友好代码替换缩小。转到此链接,您将看到示例

,您可以在缩小之前尝试一种方法,该方法将搜索缩小并用缩小友好代码替换缩小。转到此链接,您将看到示例

此解决方案看起来比其他解决方案更好,谢谢。不客气。通常是这样做的,匿名函数用内联数组进行注释(如本答案所示),命名函数用$inject进行注释。如果你选择一个或另一个,这是风格的问题。这个解决方案看起来比另一个更好,谢谢。不客气。通常是这样做的,匿名函数用内联数组进行注释(如本答案所示),命名函数用$inject进行注释。如果你选择一个或另一个,这是风格的问题。