Я использую директиву " ng-strict-di " в своем приложении для защиты от неудачной минимизации. Но теперь я получаю сообщение об ошибках в своих директивах.
Ошибка: функция [$ injector: strictdi] ($ scope, element, attrs) не использует явные аннотации и не может быть вызвана в строгом режиме
Как явным образом добавить $ scope в зависимость от функции анонимного контроллера? Вот моя директива.
var myApp = angular.module("myApp",[]);
myApp.directive('myDirective', function(){
return{
restrict: 'A',
template: '<h4> {{myController.msg}} </h4>',
controller: function($scope, element, attrs){
$scope.myController = this;
this.msg = "Hello world";
};
});
Я пытался:
var myApp = angular.module('myApp ', ['$scope'])
Но я получаю эту ошибку: Ошибка: [$ injector: modulerr] Не удалось создать экземпляр модуля
Для директивного контроллера нужен синтаксис безопасного предупреждения:
controller: ["$scope", "element", "attrs", function($scope, element, attrs){
$scope.myController = this;
this.msg = "Hello world";
}];
Основываясь на этих параметрах, я предполагаю, что вам нужна функция link
(просто догадка):
link: function($scope, element, attrs){
$scope.myController = this;
this.msg = "Hello world";
};
link
должен быть более правильным, чем просто ее аргументы. Кроме того,this
не определено вlink
(независимо от того, что$scope.myController = this;
это вариант использования для controllerAs и его не должно быть вообще).