2016-12-06 3 views
3

Я пытаюсь ответить на этот ответ на старый вопрос, но я получаю крах в $ parse как параметр функции. Почему он не может распознать $ parse?

https://stackoverflow.com/a/29571230/1481314

.directive('elementReady', function ($parse) { 
      return { 
       restrict: 'A', 
       link: function ($scope, elem, attrs) { 
        elem.ready(function() { 
         $scope.$apply(function() { 
          var func = $parse(attrs.elementReady); 
          func($scope); 
         }) 
        }) 
       } 
      } 
     }); 
+0

Какая ошибка вы получаете? Вы пытались указать его как зависимость в формате массива, используя '' '['$ parse', function ($ parse) {...}]' ''? –

+0

Вы минимизировали скрипты? – devqon

+0

Как @devqon сказал, если вы минимизировали скрипт и не поместили зависимость или не ввели его в другое место, это сработает – ocespedes

ответ

0

Вы должны указать инъекции в строчном формате. Это необходимо только при устранении исходного кода.

Подход 1: использовать формат массив при объявлении угловых инъекций

.directive('elementReady', ['$parse' function elementReady($parse) { 
    ... 
}]); 

Подход 2: использование имени функция и вручную указать инъекции

.directive('elementReady', elementReady) 

function elementReady($parse) { 
    ... 
} 
elementReady.$inject = ['$parse']; 

Подход 3: Использование нг-аннотации автоматизировать этот

GRUNT: https://www.npmjs.com/package/grunt-ng-annotate

GULP: https://www.npmjs.com/package/gulp-ng-annotate/

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

  • Нет связанных вопросов^_^