Poprawny sposób integracji wtyczek jQuery w AngularJS
Zastanawiałem się, jaki jest prawidłowy sposób, aby zintegrować wtyczki jQuery do mojej aplikacji angular. Znalazłem kilka samouczków i screenów, ale wydają się one dostosowane do konkretnej wtyczki.
Na Przykład: http://amitgharat.wordpress.com/2013/02/03/an-approach-to-use-jquery-plugins-with-angularjs/ http://www.youtube.com/watch?v=8ozyXwLzFYs
Czy powinienem stworzyć taką dyrektywę -
App.directive('directiveName', function() {
return {
restrict: 'A',
link: function(scope, element, attrs) {
$(element).'pluginActivationFunction'(scope.$eval(attrs.directiveName));
}
};
});
A następnie w html wywołanie skryptu i dyrektywa?
<div directiveName ></div>
<script type="text/javascript" src="pluginName.js"></script>
Thanks ahead
2 answers
Tak, masz rację. Jeśli używasz wtyczki jQuery, nie umieszczaj kodu w kontrolerze. Zamiast tego utwórz dyrektywę i umieść kod, który normalnie miałbyś wewnątrz link
funkcji dyrektywy.
Jest kilka punktów w dokumentacji, które możesz rzucić okiem. Znajdziesz je tutaj:
typowe pułapki
Upewnij się, że gdy odwołujesz się do skryptu w widoku, odwołaj go na koniec - po odwołaniu się do biblioteki angularjs, kontrolerów, usług i filtrów.
EDIT: zamiast używać $(element)
, możesz użyć angular.element(element)
używając AngularJS z jQuery
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-05-06 18:53:25
Mam już 2 sytuacje, w których dyrektywy i usługi / fabryki nie grały dobrze.
Scenariusz jest taki, że mam (miałem) dyrektywę, która ma iniekcję zależności usługi i od dyrektywy proszę usługę o wykonanie wywołania ajax (z $http).
W końcu, w obu przypadkach ng-Repeat nie zapisywał się w ogóle, nawet gdy podałem tablicy wartość początkową.
Próbowałem nawet zrobić dyrektywę z kontrolerem i izolowanym zakresem
Only when i moved wszystko do kontrolera i działało jak magia.
Przykład o tym tutaj Inicjalizacja wtyczki jQuery (RoyalSlider) w js
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-23 12:34:36