Angular $ controller服务和缩小

时间:2016-03-18 16:44:40

标签: javascript angularjs controller uglifyjs

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

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

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

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

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

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

提前谢谢你,

的Mathias

3 个答案:

答案 0 :(得分:1)

您可以命名您的功能并使用$ inject。

$controller(myController, {});

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

答案 1 :(得分:1)

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

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

}

$controller(myNamedFunction, {});

答案 2 :(得分:1)

遵循以下任何方法在angularjs中添加DI。
1)

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

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

3)使用ngAnnotate。