2016-02-26 1 views
1

Если я объявляю директиву как так (вдохновленный http://ify.io/lazy-loading-in-angularjs/):директива скомпилирован после начальной загрузки не работает после минификация

myApp.compileProvider 
    .directive('myDirective', 
     ['$http', '$timeout', 
     function($http, $timeout){ 
      return { 
       (...) 
      } 
     }]); 

Это работает, как ожидалось ранее минификация.

Но после того, как он возвращает ошибку:

Error: [$injector:unpr] Unknown provider: iProvider <- i 

предполагающих, что зависимость не объявлена.

Есть ли другой синтаксис для минимизации безопасных ленивых зависимостей директив?

+0

[inline уведомление для инъекции зависимостей] (https://docs.angularjs.org/tutorial/step_05) должно работать ... любой шанс, что эта директива не вызывает ошибку? – Jorg

ответ

0

Вы, наверное, забыли сделать правильные инъекции где-то в вашем коде, то есть делать это:

function($http, $service,...) 

Вместо этого

['$http', '$service', [...], function($http, $service,...){}] 

Если вы хотите получить больше информации о том, где у вас есть проблемы вы должны включить strict-di, добавив ng-strict-di вместе с тегом ng-app. Проверьте https://docs.angularjs.org/guide/di

+0

Метод, который вы предлагаете, не является безопасным для минимизации – coiso

+0

да, это я предлагаю 2-й блок, это безопасно для минимизации. Я говорю, что это, вероятно, не из его директивы, а где-то еще в его коде. – Walfrat