Injeksi yang disimpulkan
Metode injeksi ini membutuhkan memastikan bahwa nama parameter sama dengan nama layanan. Jika kode perlu dikompresi, dll., Suntikan akan gagal.
app.controller ("myctrl1", function ($ scope, hello1, hello2) {$ scope.hello = function () {hello1.hello (); hello2.hello ();}});Injeksi penanda
Metode injeksi ini membutuhkan pengaturan array ketergantungan, yang berisi nama layanan ketergantungan. Dalam parameter fungsi, Anda dapat mengatur nama parameter sesuka hati, tetapi konsistensi pesanan harus dipastikan.
var myctrl2 = function ($ scope, hello1, hello2) {$ scope.hello = function () {hello1.hello (); hello2.hello (); }} myctrl2. $ injector = ['hello1', 'hello2']; app.controller ("myctrl2", myctrl2);Injeksi inline
Metode injeksi ini langsung melewati dua parameter, satu adalah nama dan yang lainnya adalah array. Parameter terakhir dari array ini adalah badan metode nyata, dan sisanya adalah ketergantungan, tetapi perlu untuk memastikan bahwa parameter dalam badan metode berada dalam urutan yang sama (sama dengan injeksi tanda).
app.controller ("myctrl3", ['$ scope', 'hello1', 'hello2', function ($ scope, hello1, hello2) {$ scope.hello = function () {hello1.hello (); hello2.hello ();}}]);Metode umum $ injektor
Dalam sudut, injektor dapat diperoleh melalui Angular.Injector ().
var $ injector = angular.Injector ();
Dapatkan nama layanan ketergantungan melalui $ injector.get ('ServiceName')
$ injector.get ('$ scope')
Dapatkan semua dependensi XXX oleh $ injector.Annotate ('xxx')
$ injector.annotate (xxx)
Kode sampel
<html> <head> <meta http-equiv = "content-type" content = "text/html; charset = utf-8"/> <script src = "http://apps.bdimg.com/libs/angular.js/1.2.16/angular.min.js"> </papping> <pead> <pead non- "mypapp"> </papping> <pead> "Body/" BOADG> "BOADE-" BOADG> </BOADP- "BOADG/BOADG/BOADG/BOADG/BOADG/BOADG/BOADG/BOADG/BOADG/BOADG </APPLIPLY> ng-controller = "myctrl1"> <input type = "tombol" ng-click = "hello ()" value = "ctrl1"> </input> </div> <div ng-controller = "myctrl2"> <input type = "ng-click =" hello () "value =" ctrl2 " ng-controller = "myctrl3"> <input type = "tombol" ng-click = "hello ()" value = "ctrl3"> </input> </div> <script type = "text/javascript"> var app = angular.module ("myapp", []); app.factory ("hello1", function () {return {hello: function () {console.log ("hello1 service");}}}); app.factory ("hello2", function () {return {hello: function () {console.log ("hello2 service");}}}); var $ injector = angular.Injector (); console.log (angular.equals ($ injector.get ('$ injector'), $ injektor)); // true console.log (angular.equals ($ injector.invoke (fungsi ($ injector) {return $ injector;}), $ injector));//// true // injector) (injector;}), $ injector));/// true // injector/$ injector;}), $ injector)));/// true // injector/$ injector;}), $ injector)));/// true // injector/$ injector; injector; app.controller ("myctrl1", function ($ scope, hello1, hello2) {$ scope.hello = function () {hello1.hello (); hello2.hello ();}}); // anotasi // function eksplisit (servicea) {}; // eksplisit. $ inject = ['servicea']; // $ injector.invoke (eksplisit); var myctrl2 = function ($ scope, hello1, hello2) {$ scope.hello = function () {hello1.hello (); hello2.hello (); }} myctrl2. $ injector = ['hello1', 'hello2']; app.controller ("myctrl2", myctrl2); // inline app.controller ("myctrl3", ['$ scope', 'hello1', 'hello2', function ($ scope, hello1, hello2) {// app.controller ("myctrl3", ['$ scope', 'hello1', 'hello2', function (a, b, c) {/funche (function (function (function (a, b, c) {(c) {hello1, c.hello ();Di atas adalah kompilasi dari informasi injektor AngularJS. Kami akan terus menambahkan informasi yang relevan di masa mendatang. Terima kasih atas dukungan Anda untuk situs web ini!