Angular memungkinkan layanan untuk mendeklarasikan layanan lain sebagai dependensi, menggunakan konstruktor yang digunakan saat instantiating sendiri.
Untuk mendeklarasikan dependensi, kita perlu menentukannya dalam deklarasi metode pabrik dan menggunakan atribut $ injeksi (array identifikasi string) atau menggunakan notasi array dalam metode pabrik.
Biasanya Deklarasi Properti $ Injeksi dapat dibuang (mis. Injeksi ketergantungan implisit yang disebutkan dalam //www.vevb.com/article/91815.htm, tetapi ini adalah properti eksperimental dan akan gagal setelah kompresi dan kebingungan, harap gunakan dengan hati -hati!).
Gunakan notasi array
function mymodulecfgfn ($ invice) {$ astancy.factory ('myservice', ['dep1', 'dep2', function (dep1, dep2) {}]);}Gunakan properti $ suntikan
fungsi myModuleCfgfn ($ invice) {var myServiceFactory = function (dep1, dep2) {}; myServiceFactory. $ inject = ['dep1', 'dep2']; $ tersedia. }Menggunakan DI IMPLIST (tidak kompatibel dengan kode yang dikaburkan kompresi)
Fungsi myModuleCfgfn ($ invice) {$ incer.Berikut adalah contoh di mana ada dua layanan, dan ada dependensi di antara mereka, serta beberapa layanan lain yang disediakan oleh Angular.
/*** Layanan Batchlog memungkinkan pesan untuk membentuk antrian dalam memori, memerah setiap 50 detik sekali. * * @param { *} pesan pesan untuk dicatat. */ function BatchlogModule ($ incerve) {$ astancy.factory ('Batchlog', ['$ timeout', '$ log', function ($ timeout, $ log) {var messagequeue = []; function log () {if (messagequeue.length) {$ log ('oMer -log (' ifeoute) {$ log ('{if messagequeue) {$ log (' {if messagequeUe) {$ log ('if if {if messagequeeee log (); / *** RouteTemplatMonitor memantau perubahan dari setiap rute, dan masing -masing Bi'anu akan merekamnya melalui layanan batchlog*/ $ astancy ('routeTemplatemonitor', ['$ route', 'Batchlog', '$ rootcope', $ route, $ route, $ roote ($ lootscope ', $ roote) {$ roote) {rootscope. {Batchlog ($ route.current? $ route.current.template: null); } // Dapatkan layanan utama, jalankan aplikasi (dengarkan acara) Angular.Injector ([BatchlogModule]). Get ('RouteTemplatMonitor');Hal -hal yang perlu diperhatikan dalam contoh:
Di atas adalah kompilasi informasi dependensi layanan pengelola AngularJS. Kami akan terus menambahkan informasi yang relevan di masa mendatang. Terima kasih atas dukungan Anda untuk situs web ini!