ошибка компиляции $ в связанном AngularJS?

#angularjs

#angularjs

Вопрос:

Вот разделенный угловой код, который работает хорошо.

 angular.module('XXX').directive('xxx', ['$compile', '$injector', function($compile, $injector){
 return {
   restrict: 'A',
   scope: false,
   transclude: true,
  ...
  XXX.attachEvent("XXX", function(id){
   angular.element(document.querySelector( '[name="isallday"]' )).attr('ng-model', 'isallday');  
   angular.element( document.querySelector( ".dhx_section_time" )
            .getElementsByTagName("select") ).attr('ng-class', '{dhx_time_disable: isallday}').attr('ng-disabled', 'isallday');
   var el = angular.element(document.querySelector( ".dhx_cal_larea" ));    
   $injector = el.injector();
   $injector.invoke(function($compile){
      $compile(el)($scope)
   }) 
  })
}
}]);      
  

Я добавил ng-модель динамически, а не статически.
Но когда я запускаю этот код в связанной среде,
он отображает ошибку.

неперехваченная ошибка: [$инжектор: unpr] http://errors.angularjs.org/1.4.1 /$инжектор/unpr?p0=tProvider 3C- t

Мой проект использует asp.net и angularjs, и dhx. Как я могу исправить эту ошибку?

Комментарии:

1. Какие библиотеки вы включили в представление HTML? Можете ли вы поделиться этим здесь?

2. Я использую расписание dhx. Поэтому я добавляю ng-modal при отображении диалогового окна newEvent.

3. Попробуйте изменить с помощью версии angular

Ответ №1:

Вероятно, ваша проблема заключается в уменьшении / уродстве среди этих строк:

 $injector.invoke(function($compile){
  $compile(el)($scope)
})
  

Когда вызываемая функция уменьшается / уменьшается, ее первый параметр $compile переименовывается t в вашем случае, что приводит к неизвестной tProvider ошибке. Попробуйте следующее:

 $injector.invoke(['$compile', function($compile){
  $compile(el)($scope)
}])
  

(или повторно $compile используйте то, что вы ввели в свою директиву …)

Комментарии:

1. Большое вам спасибо. Я последовал вашему руководству и исправил это.