Я использую AngularJS 1.2 и пытаюсь включить плагин jQuery через Угловую директиву. В качестве примера я выбрал плагин под названием spectrum. Я не включил (и не хочу включать) jQuery отдельно, поскольку, как говорят, AngularJS включает jqLite, меньшую версию jQuery.Как использовать плагины jQuery в AngularJS?
myDirs.directive('spectrumDir', function() {
return {
restrict: 'A',
link: function(scope, element, attrs) {
angular.element(element).spectrum(scope.$eval(attrs.spectrumDir));
}
};
});
Однако, когда я пытаюсь загрузить приложение, я получаю:
Uncaught ReferenceError: jQuery is not defined spectrum.js:1888 (anonymous function)
ошибка проистекает из инициализации плагина:
(function (window, $, undefined) {
…code…
})(window, jQuery);
Что такое общее решение в том числе плагины jQuery в AngularJS? Есть ли какой-либо изящный способ достичь этого, не включая полную библиотеку jQuery?
AngularJS comes bundled with a lite implementation of jQuery referred to as jqLite. For Angular’s purposes, this is effectively jQuery, albeit an extremely gutted one. The creators of Angular believe the jqLite API to be sufficient for nearly every application if utilized properly.
У вас есть библиотека jQuery, включенная в страницу, и включена ли она в плагин –
Если плагин зависит от jquery, вы не можете использовать его без jquery. AngularJS не собирается делать каких-либо магии, чтобы позволить зависимости уйти :) – Chandermani
Включить jQuery, поскольку это плагин «jQuery». – geniuscarrier