2016-03-18 5 views
0

я определяю новый контроллер, как это:

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

Но когда я перехожу на строгом режиме, это бросает мне ошибку говоря $ масштабов должны быть объявлены как аннотация.

Проблема заключается в том, что служба $ controller принимает только метод функции или имя контроллера, а не массив, где я могу определить свои аннотации.

https://docs.angularjs.org/api/ngMock/service/ $ Контроллер

Кто-нибудь есть идея, как я могу получить вокруг этого? Причина, по которой он должен работать в строгом режиме, заключается в том, что весь мой код получает минимальное значение, поэтому, если он не работает в строгом режиме, он не работает ни при его минимизации.

Спасибо заранее,

Матиас

ответ

1

Вы можете назвать свою функцию и использовать $ впрыснуть.

$controller(myController, {}); 

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

Работает как шарм спасибо :-) – mp1990

1

Вы можете попробовать это (я не проверял, сорри):

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

} 

$controller(myNamedFunction, {}); 
+0

Он работает спасибо. – mp1990

1

по любой из этих подходов для добавления DI в angularjs.
1)

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

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

3) Используя ngAnnotate.

+0

Работает спасибо. – mp1990

Смежные вопросы