Angular $控制器服务和缩小

Angular $controller service and minification

我正在这样定义一个新的控制器:

$controller(function ($scope) {}, {})

但是当我打开严格模式时,这会抛出一个错误,提示必须将 $scope 声明为注释。

问题是 $controller 服务只接受函数方法或控制器名称,而不是我可以定义注释的数组。

https://docs.angularjs.org/api/ngMock/service/$控制器

有谁知道我该如何解决这个问题?它必须在严格模式下工作的原因是因为我所有的代码都被缩小了,所以如果它不能在严格模式下工作,它在缩小时也不会工作。

提前谢谢你,

马蒂亚斯

您可以命名您的函数并使用 $inject。

$controller(myController, {});

myController.$inject = ['$scope'];
function myController($scope) {}

你可以试试这个(对不起,我没有检查):

myNamedFunction.$inject = ['$scope'];
function myNamedFunction($scope) {

}

$controller(myNamedFunction, {});

按照这些方法中的任何一种在 angularjs 中添加 DI。
1)

mycontroller.$inject = ['$scope'];
function mycontroller($scope){}

2)
angular .module('app',[]) .controller('mycontroller',['$scope',function(){ // write controller code here}]);

3) 使用 ngAnnotate.