วิธีการโหลดบริการลงในคอนโทรลเลอร์เป็นทรัพยากรการพึ่งพานั้นคล้ายกับวิธีการโหลดลงในบริการอื่น ๆ
เนื่องจาก JavaScript เป็นภาษาแบบไดนามิก DI จึงไม่สามารถคิดได้ว่าบริการใดที่ควรฉีดผ่านประเภทคงที่ (เช่นในภาษาที่พิมพ์แบบคงที่) ดังนั้นเราจำเป็นต้องระบุชื่อบริการผ่านคุณสมบัติ $ inject ซึ่งเป็นอาร์เรย์ของสตริงที่มีชื่อบริการที่ต้องฉีด ความสำคัญของคำสั่ง ID บริการ: ลำดับของพารามิเตอร์ในวิธีการโรงงานสอดคล้องกับลำดับของบริการในอาร์เรย์ ชื่อพารามิเตอร์ของวิธีการโรงงานไม่สำคัญ แต่ตามปกติพวกเขาตรงกับรหัสบริการทีละคนและประโยชน์ของการทำเช่นนั้นจะกล่าวถึงด้านล่าง
1. การฉีดขึ้นอยู่กับการพึ่งพาอย่างชัดเจน
ฟังก์ชั่น myController ($ scope, $ loc, $ log) {$ scope.firstmethod = function () {// ใช้ $ location service $ loc.sethash (); - $ scope.secondMethod = function () {// ใช้ $ log service $ log.info ('…')};} myController. $ inject = ['$ location', '$ log'];ตัวอย่าง:
<! doctype html> <html lang = "zh-cn" ng-app = "mainapp"> <head> <meta charset = "utf-8"> <title> การฉีดยาอย่างชัดเจน </title> </head> <body> <body> <body> <body> <body> ng-click = "savemsg ()"> บันทึก msg </button> <ul> <li ng-repeat = "msg ใน msgs"> {{msg}} </li> </ul> </div> <script Src = "../ angular-1.0.1.js Angular.Module ("MainApp", [], ฟังก์ชั่น ($ prost) {$ pertive.factory ("แจ้งเตือน", ["$ window", "$ timeout", ฟังก์ชั่น (ชนะ, หมดเวลา) {// นี่คือบริการที่ขึ้นกับบริการด้วยวิธีการที่ชัดเจน if (msgs.length == 3) {timeout (function () {win.alert (msgs.join ("/n")); msgs = [];}, 10); ฟังก์ชั่น myController ($ s, $ noti) {// นี่คือบริการที่ขึ้นกับคอนโทรลเลอร์ ด้วยวิธีการที่ชัดเจนนี้ชื่อพารามิเตอร์สามารถกรอกแบบสุ่มได้ แต่คำสั่งจะต้องสอดคล้องกับ $ s.msgs = []; $ s.savemsg = function () {this.msgs.push (this.msg); $ noti (this.msg); this.msg = ""; - } // ระบุสิ่งที่ฉีด // คุณยังสามารถอ้างถึงตัวอย่างใน http://www.cnblogs.com/lclao/archive/2012/10/16/2725317.html mycontroller2. การฉีดขึ้นอยู่กับการพึ่งพาโดยนัย
คุณลักษณะใหม่ของ Angular DI ที่ช่วยให้การอ้างอิงถูกกำหนดโดยชื่อพารามิเตอร์ เรามาเขียนตัวอย่างข้างต้นใหม่เพื่อแสดงวิธีการฉีดหน้าต่าง $ โดยปริยาย, $ SCOPE และบริการแจ้งเตือน
ตัวอย่าง:
<! doctype html> <html lang = "zh-cn" ng-app = "mainapp"> <head> <meta charset = "utf-8"> <title> โดยปริยาย-inject-service </title> </head> <body> <body> <body> <body> <body> ng-click = "savemsg ()"> บันทึก msg </button> <ul> <li ng-repeat = "msg ใน msgs"> {{msg}} </li> </ul> </div> <script Src = "../ angular-1.0.1.js Angular.Module ("MainApp", [], ฟังก์ชั่น ($ prost) {$ pertive.factory ("แจ้งเตือน", ฟังก์ชั่น ($ window, $ หมดเวลา) {// บริการขึ้นอยู่กับบริการขึ้นอยู่กับโดยปริยายชื่อคือ var msgs = []; ฟังก์ชั่น Return (msg) {msgs.push (msg); $ window.alert (msgs.join ("/n")); แจ้งเตือน (this.msg);แม้ว่าสิ่งนี้จะสะดวกมากหากเราต้องการบีบอัดและทำให้รหัสของเราสับสน แต่สิ่งนี้อาจทำให้ชื่อพารามิเตอร์เปลี่ยนไป ในกรณีนี้เรายังคงต้องใช้การประกาศอย่างชัดเจนของการพึ่งพา
ข้างต้นคือข้อมูลเกี่ยวกับบริการฉีด AngularJS ลงในคอนโทรลเลอร์ เราจะยังคงเพิ่มข้อมูลที่เกี่ยวข้องในอนาคต ขอบคุณสำหรับการสนับสนุนเว็บไซต์นี้!