يسمح Angular للخدمة بإعلان الخدمات الأخرى كتبعيات ، وذلك باستخدام المنشئ المستخدم عند إنشاء إنشاء نفسه.
لإعلان التبعيات ، نحتاج إلى تحديدها في إعلان طريقة المصنع واستخدام سمة حقن $ (صفيف تعريف السلسلة) أو استخدام تدوين الصفيف في طريقة المصنع.
عادةً ما يمكن التخلص من إعلان خاصية حقن $ (أي حقن التبعية الضمنية المذكورة في //www.vevb.com/article/91815.htm ، ولكن هذه خاصية تجريبية وسوف تفشل بعد الضغط والتشويش ، يرجى استخدامه بحذر!).
استخدم تدوين الصفيف
وظيفة mymodulecfgfn ($ prode) {$ prove.factory ('myservice' ، ['dep1' ، 'dep2' ، function (dep1 ، dep2) {}]) ؛}استخدم خاصية $ enject
دالة mymoduleCfgfn ($ sevel) {var myservicefactory = function (dep1 ، dep2) {} ؛ myServiceFactory. $ enject = ['dep1' ، 'dep2'] ؛ $ prod.factory ('myService' ، myServiceFactory) ؛ }باستخدام DI الضمني (لا يتوافق مع رمز الضغط المفرط)
وظيفة mymodulecfgfn ($ prode) {$ prove.factory ('myservice' ، function (dep1 ، dep2) {}) ؛}فيما يلي مثال على وجود خدمتين ، وهناك تبعيات بينهما ، وكذلك بعض الخدمات الأخرى التي تقدمها Angular.
/*** تتيح خدمة Batchlog للرسائل تكوين قائمة انتظار في الذاكرة ، والتدفق مرة كل 50 ثانية. * * param { *} رسالة رسالة ليتم تسجيلها. */ function batchlogmodule ($ prode) {$ prove.factory ('batchlog' ، ['$ timeout' ، '$ log' ، function ($ timeout ، $ log) {var messagequeue = [] log () ؛ / *** يراقب RoutetEmplatemonitor تغييرات كل مسار ، وسيقوم كل Bi'Anu بتسجيله من خلال خدمة Batchlog*/ $ sPOVE.Factory ('RoutetEmplatemonitor' ، ['$ route' ، 'batchlog' ، '$ rootscope' ، function ($ route ، batchlog ، $ rootscope) {$ rootscope. batchlog ($ route.current؟ $ route.current.template: null) ؛ } // الحصول على الخدمة الرئيسية ، قم بتشغيل التطبيق (استمع إلى الحدث) Angular.injector ([BatchLogModule]). GET ('RoutetEmplatemonitor') ؛أشياء يجب ملاحظتها في المثال:
ما ورد أعلاه هو تجميع معلومات تبعيات الخدمة AngularJS. سنستمر في إضافة المعلومات ذات الصلة في المستقبل. شكرا لدعمكم لهذا الموقع!