2015-06-30 2 views
1

В моем текущем приложении я уже вызвал много функций контроллера AngularJS из jQuery, но я только начал использовать директиву strict-di, и теперь это дает мне ошибку, которая angular().element() не определила что-то вроде этого.Как вызвать функцию контроллера из jQuery Если использовать Strict DI

Я искал слишком много об этой проблеме на Угловом сайте и StackOverflow, но не нашел никакого решения, у меня есть 30-40 контроллеров и вообще как-то я вызываю функцию из jQuery, поэтому я не могу ее изменить любым способом сохранить все мои коды, а также использовать strict-di?

Также с помощью:

app.config(['$compileProvider', function ($compileProvider) { 
     $compileProvider.debugInfoEnabled(false); 
    }]); 

и получить неопределенную ошибку:

var myVar = angular.element(document.getElementById('ControllerID')).scope().FunctionName(); 

ТИА

+0

У вас есть образец кода, который имеет этот вопрос? Я смог использовать jQuery с угловым строгим директивом di. – potatopeelings

+0

Пожалуйста, проверьте отредактированный вопрос –

ответ

0

Я не думаю, что strict-di ваша проблема.

В соответствии с документацией для объема() ->https://docs.angularjs.org/api/ng/function/angular.element JQuery/jqLite Дополнительно> Методы> Сфера()

... Требуется Debug данных должна быть включена.

Ваш

$compileProvider.debugInfoEnabled(false); 

отключает Debug данных и т.д. охват() на angular.element (document.getElementById ('ControllerID')) возвращает неопределенное значение.

Try установка

$compileProvider.debugInfoEnabled(true); 
+0

любым другим способом сделать это? –

+0

Я думаю, что нет - https://github.com/angular/angular.js/issues/9515 был проблемой github для этого, и он был закрыт путем обновления документации. Но зачем вам это нужно? Вы можете использовать angular.reloadWithDebugInfo(), если вы хотите временно отлаживать. – potatopeelings

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