/ / Як визначається, чи присутній jQuery? - javascript, angularjs

Як кутовий визначає, чи присутній jQuery? - javascript, angularjs

Тому, що я отримую дивні ситуації, подібні до кутових об'єктів element у функції зв'язку контролер закінчується тим, що є jQLite об'єктом, хоча jQuery безумовно присутній як при завантаженні в пам'ять і успішно використовується в інших місцях на тій же сторінці.

Часті запитання щодо цього питання досить нечіткі:

Так, Angular може використовувати jQuery, якщо він присутній удодаток під час завантаження програми. Якщо у вашому сценарії немає jQuery, Angular повертається до власної реалізації підмножини jQuery, яку ми називаємо jQLite.

Отже, що ж означає "сьогодення"?

Відповіді:

4 для відповіді № 1

Кутовий.js буде використовувати jQuery, якщо він буде включений першим, інакше він використовуватиме власний jqLite. Якщо ви завантажите jQuery після AngularJS, AngularJS прикріплюється до jqLite, але ви все ще можете отримати доступ до jQuery через $.

Дивіться нижче код, який використовується angular.js, щоб визначити, чи завантажено jquery:

  // bind to jQuery if present;
jQuery = window.jQuery;
// Use jQuery if it exists with proper functionality, otherwise default to us.
// Angular 1.2+ requires jQuery 1.7+ for on()/off() support.
// Angular 1.3+ technically requires at least jQuery 2.1+ but it may work with older
// versions. It will not work for sure with jQuery <1.7, though.
if (jQuery && jQuery.fn.on) {
jqLite = jQuery;
extend(jQuery.fn, {
scope: JQLitePrototype.scope,
isolateScope: JQLitePrototype.isolateScope,
controller: JQLitePrototype.controller,
injector: JQLitePrototype.injector,
inheritedData: JQLitePrototype.inheritedData
});

Зміна порядку тегів скриптів може не відбуватися дуже часто, але це може статися, якщо ви почнете модулювати кодову базу. Зокрема, це питання сталося при використанні окремих модульних навантажувачів типу RequireJS.