角度$controller服务和缩小

Angular $controller service and minification

本文关键字:缩小 服务 controller 角度      更新时间:2023-09-26

我正在定义一个新的控制器,如下所示:

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

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

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

https://docs.angularjs.org/api/ngMock/service/$controller

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

提前谢谢你,

马蒂亚斯

您可以命名函数并使用$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。