Saya bertanya-tanya apa cara yang benar untuk mengintegrasikan plugin jQuery ke aplikasi sudut saya. Saya telah menemukan beberapa tutorial dan layar-gips tetapi tampaknya melayani plugin tertentu.
Sebagai Contoh: http://amitgharat.wordpress.com/2013/02/03/an-approach-to-use-jquery-plugins-with-angularjs/ http://www.youtube.com/watch?v=8ozyXwLzFYs
Haruskah saya membuat arahan seperti itu -
App.directive('directiveName', function() {
return {
restrict: 'A',
link: function(scope, element, attrs) {
$(element).'pluginActivationFunction'(scope.$eval(attrs.directiveName));
}
};
});
Dan kemudian di html memanggil skrip dan arahan?
<div directiveName ></div>
<script type="text/javascript" src="pluginName.js"></script>
Terima kasih sebelumnya
jquery-plugins
angularjs
Gidon
sumber
sumber
$(element).pluginActivationFunction(scope.$eval(attrs.directiveName));
tanpa tanda kutip.Jawaban:
Ya kamu benar. Jika Anda menggunakan plugin jQuery, jangan masukkan kode di controller. Alih-alih buat direktif dan masukkan kode yang biasanya Anda miliki di dalam
link
fungsi direktif.Ada beberapa poin dalam dokumentasi yang bisa Anda lihat. Anda dapat menemukannya di sini:
Masalah Umum
Menggunakan pengontrol dengan benar
Pastikan bahwa ketika Anda mereferensikan skrip dalam tampilan Anda, Anda merujuk terakhir - setelah perpustakaan sudut, pengontrol, layanan, dan filter direferensikan.
EDIT: Daripada menggunakan
$(element)
, Anda bisa memanfaatkanangular.element(element)
saat menggunakan AngularJS dengan jQuerysumber
ng-click
arahan melalui parameter HTML teks biasa ini)Saya memiliki 2 situasi di mana arahan dan layanan / pabrik tidak bermain dengan baik.
Skenarionya adalah bahwa saya telah (memiliki) arahan yang memiliki injeksi ketergantungan layanan, dan dari arahan saya meminta layanan untuk membuat panggilan ajax (dengan $ http).
pada akhirnya, dalam kedua kasus ng-Ulangi tidak mengajukan sama sekali, bahkan ketika saya memberi array nilai awal.
Saya bahkan mencoba membuat arahan dengan pengontrol dan ruang lingkup terisolasi
hanya ketika saya memindahkan semuanya ke controller dan itu bekerja seperti sulap.
contoh tentang ini di sini Menginisialisasi plugin jQuery (RoyalSlider) di Angular JS
sumber