Angular อนุญาตให้บริการประกาศบริการอื่น ๆ เป็นพึ่งพาโดยใช้ตัวสร้างที่ใช้เมื่อสร้างอินสแตนซ์เอง
ในการประกาศการพึ่งพาเราจำเป็นต้องระบุพวกเขาในการประกาศวิธีการโรงงานและใช้แอตทริบิวต์ $ inject (อาร์เรย์การระบุสตริง) หรือใช้สัญลักษณ์อาเรย์ในวิธีการโรงงาน
โดยปกติแล้วการประกาศทรัพย์สิน $ inject สามารถยกเลิกได้ (เช่นการฉีดพึ่งพาโดยนัยที่กล่าวถึงใน //www.vevb.com/article/91815.htm แต่นี่เป็นคุณสมบัติการทดลองและจะล้มเหลวหลังจากการบีบอัดและการทำให้งงงวย
ใช้สัญกรณ์อาเรย์
ฟังก์ชั่น mymodulecfgfn ($ prost) {$ provels.factory ('myservice', ['dep1', 'dep2', ฟังก์ชั่น (dep1, dep2) {}]);}ใช้คุณสมบัติ $ inject
ฟังก์ชั่น mymodulecfgfn ($ prost) {var myServiceFactory = function (dep1, dep2) {}; MyServiceFactory. $ inject = ['dep1', 'dep2']; $ PRESTIVE.FACTORY ('MyService', MyServiceFactory); -การใช้ DI โดยนัย (เข้ากันไม่ได้กับรหัสการบีบอัดที่ทำให้งง)
ฟังก์ชั่น mymodulecfgfn ($ prost) {$ provels.factory ('myservice', ฟังก์ชั่น (dep1, dep2) {});}นี่คือตัวอย่างที่มีสองบริการและมีการพึ่งพาระหว่างพวกเขารวมถึงบริการอื่น ๆ ที่จัดทำโดย Angular
/*** บริการ batchlog อนุญาตให้ข้อความสร้างคิวในหน่วยความจำล้างทุก ๆ 50 วินาที * * @param { *} ข้อความที่จะบันทึก */ ฟังก์ชั่น batchlogModule ($ prost) {$ provels.factory ('batchlog', ['$ timeout', '$ log', ฟังก์ชั่น ($ หมดเวลา, $ log) {var messagequeue = []; ฟังก์ชั่น log () {if (messageQueue.length) {$ log ('batchlog:' log (); / *** Routetemplatemonitor ตรวจสอบการเปลี่ยนแปลงของแต่ละเส้นทางและแต่ละ bi'anu จะบันทึกผ่านบริการ batchlog*/ $ priest.factory ('routetemplatemonitor', ['$ route', 'batchlog', '$ Rootscope' batchlog ($ route.current? $ route.current.template: null); } // รับบริการหลักเรียกใช้แอปพลิเคชัน (ฟังเหตุการณ์) Angular.injector ([BatchlogModule]) รับ ('RoutetEmplatemonitor');สิ่งที่ควรทราบในตัวอย่าง:
ข้างต้นคือการรวบรวมข้อมูลการจัดการบริการ AngularJS เราจะยังคงเพิ่มข้อมูลที่เกี่ยวข้องในอนาคต ขอบคุณสำหรับการสนับสนุนเว็บไซต์นี้!