#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. Большое вам спасибо. Я последовал вашему руководству и исправил это.