我正在定义一个这样的新控制器:
$controller(function ($scope) {}, {})
但是当我打开严格模式时,这会抛出一个错误,说$ scope必须声明为注释。
问题是,$ controller服务只接受函数方法或控制器名称,而不是我可以定义注释的数组。
https://docs.angularjs.org/api/ngMock/service/ $控制器
有谁知道如何解决这个问题?它必须在严格模式下工作的原因是因为我的所有代码都被缩小了,所以如果它在严格模式下不起作用,它在缩小时就不起作用。
提前谢谢你,
的Mathias
答案 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。