Я намагаюся вставляти кутову програму в моє існуюче додаток, яке широко використовує jquery. Момент, коли я називаю функцію завантаження, наприклад
angular.bootstrap(document.getElementById("app-grid"),["grid"]);
У мене виникає дивна помилка:
Error: $rootElement.on is not a function $LocationProvider/this.$get<@https://ajax.googleapis.com/ajax/libs/angularjs/1.2.13/angular.js:9257
........
Якщо я успішно видаляю завантаження додатка jquery stuff. Будь ласка, дайте мені знати, чи є робота навколо
jquery: 1.5.1
angularjs:1.2.13
Відповіді:
7 для відповіді № 1Це дійсно стара версія jQuery
Ви використовуєте, який не надає on
функція на загорнутих елементах. Якщо вам потрібно продовжувати використовувати його з застарілих причин, завантажте його після angularjs, так що кутовий може використовувати свій внутрішній jqLite
реалізація
7 для відповіді № 2
Не збільшуйте jQuery
з Angular.js
якщо і поки це дійсно не потрібно, наскільки це можливо Angular.js
бібліотеки, ви можете створити подібний плагін, який може бути доступний з jquery
з дещо іншим підходом, але це цілком можливо.
перевірте цю статтю нижче, щоб дізнатися більше чи ні
Не збільшуйте jQuery за допомогою AngularJS
Аналогічно, не починайте з ідеї, що jQueryX, Y і Z, так що я просто додам AngularJS поверх моделей і контролерів. Це дуже спокусливо, коли ви тільки починаєте, тому я завжди рекомендую, щоб нові розробники AngularJS не використовували jQuery взагалі, принаймні до тих пір, поки вони не звикнуть робити речі "Angular Way".
Я бачив багато розробників тут і на розсилкуСписок створити ці розроблені рішення з плагінами jQuery 150 або 200 рядків коду, які вони потім приклеюють до AngularJS з колекцією зворотних викликів і $ applys, які є заплутаними і заплутаними; але вони врешті-решт отримують його робота! Проблема полягає в тому, що в більшості випадків плагін jQuery може бути переписаний у AngularJS у частині коду, де раптом все стає зрозумілим і зрозумілим.
Суть у цьому: при вирішенні, спочатку "подумайте в AngularJS"; якщо ви не можете "подумати про рішення, запитайте у спільноти; якщо після всього цього немає простого рішення, то не соромтеся звернутися до jQuery. .
Повна стаття:"Думаю в AngularJS", якщо у мене є jQuery тло?
Happy Coding :)