Penjelasan terperinci tentang suntikan pergantungan dalam Angularjs_AngularJS

WBOY
Lepaskan: 2016-05-16 15:11:11
asal
1335 orang telah melayarinya

Biasanya terdapat tiga cara untuk objek mendapatkan kawalan ke atas kebergantungannya:

  • Buat kebergantungan secara dalaman;
  • Dirujuk melalui pembolehubah global;
  • Pas parameter jika perlu
  • Suntikan kebergantungan dilaksanakan melalui cara ketiga. Contohnya:

SomeClass boleh mengakses penyambut dalaman pada masa jalanan, tetapi ia tidak mengambil berat tentang cara mendapatkan rujukan kepada penyambut.
Untuk mendapatkan rujukan kepada contoh penyambut, pencipta SomeClass bertanggungjawab untuk membina kebergantungannya dan menyerahkannya.
function SomeClass(greeter) {
this.greeter = greeter;
}
SomeClass.prototype.greetName = function(name) {
this.greeter.greet(name);
};
Salin selepas log masuk
Berdasarkan sebab di atas, AngularJS menggunakan $injetor (perkhidmatan penyuntik) untuk mengurus pertanyaan pergantungan dan instantiasi.

Malah, $injetor bertanggungjawab untuk membuat seketika semua komponen dalam AngularJS, termasuk modul aplikasi, arahan dan pengawal.

Sebagai contoh, kod berikut. Ini adalah aplikasi mudah yang mengisytiharkan modul dan pengawal:



Apabila AngularJS membuat instantiate modul ini, ia akan mencari penyambut dan secara semula jadi memberikan rujukan kepadanya:
angular.module('myApp', [])
.factory('greeter', function() {
return {
greet: function(msg) {alert(msg);}
}
})
.controller('MyController',
function($scope, greeter) {
$scope.sayHello = function() {
greeter.greet("Hello!");
};
});
Salin selepas log masuk

Secara dalaman, proses pemprosesan AngularJS adalah seperti berikut:
<div ng-app="myApp">
<div ng-controller="MyController">
<button ng-click="sayHello()">Hello</button>
</div>
</div>
Salin selepas log masuk

Di atas adalah keseluruhan kandungan artikel ini, saya harap artikel ini dapat membantu semua orang yang mempelajari suntikan pergantungan Angularjs.
Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan