Bagaimana Menerapkan Injeksi Ketergantungan di AngularJs



Artil ini akan memberi Anda pengetahuan terperinci dan komprehensif tentang bagaimana menerapkan Injeksi Ketergantungan di AngularJs.

Dependency Injection adalah pola desain perangkat lunak yang menentukan cara komponen mendapatkan dependensinya. Komponen diberikan dependensinya alih-alih melakukan hard coding. Penggunaan kembali dan pemeliharaan dapat dicapai dengan menggunakan injeksi ketergantungan. Injeksi Ketergantungan Tertinggi dalam dapat dilakukan dengan komponen berikut:





Injeksi Ketergantungan Nilai

Objek sederhana di AngularJs dikenal sebagai nilai. Ini bisa berupa string, angka atau bahkan objek JavaScript. Ini dapat digunakan untuk meneruskan nilai di pabrik, layanan, atau pengontrol selama fase run dan config.

Contoh:



// definisikan modul

var firstModule = angular.module ('firstModule', [])

// buat objek nilai dan teruskan data ke sana



firstModule.value ('numberValue', 50)

firstModule.value ('stringValue', 'xyz')

firstModule.value ('objectValue', {val1: 456, val2: 'xyz'})

Dalam contoh ini, nilai ditentukan menggunakan fungsi value (). Nama nilai ditentukan oleh parameter pertama, dan parameter kedua menentukan nilainya. Ini memungkinkan pabrik, layanan, dan pengontrol untuk mereferensikan nilai-nilai ini dengan nama mereka sendiri.

Memasukkan Nilai

Kita dapat memasukkan nilai ke dalam fungsi pengontrol AngularJs dengan menambahkan parameter dengan nama yang sama dengan nilainya.

Contoh:

var firstModule = angular.module ('firstModule', [])

firstModule.value ('numberValue', 18)

firstModule.controller ('FirstController', function ($ scope, numberValue) {

console.log (numberValue)

})

Injeksi Pabrik

Fungsi yang menciptakan nilai dikenal sebagai pabrik. Nilai atas permintaan dibuat oleh pabrik, setiap kali layanan atau pengontrol membutuhkan nilai yang disuntikkan dari pabrik. Setelah nilai dibuat, nilai akan digunakan kembali untuk semua layanan dan pengontrol.

Itu memanfaatkan fungsi pabrik untuk menghitung dan mengembalikan nilai.

Contoh:

penanganan pengecualian di pl sql

var firstModule = angular.module ('firstModule', [])

firstModule.factory ('firstFactory', function () {

mengembalikan 'nilai'

})

firstModule.controller ('FirstController', function ($ scope, firstFactory) {

console.log (firstFactory)

})

Memasukkan nilai ke dalam pabrik

Nilai dapat disuntikkan ke pabrik dengan metode berikut:

var firstModule = angular.module ('firstModule', [])

firstModule.value ('numberValue', 29)

firstModule.controller ('FirstController', function ($ scope, numberValue) {

console.log (numberValue)

})

Perlu diperhatikan bahwa nilainyadiproduksi oleh fungsi pabrik yang disuntikkan, bukan fungsi pabrik itu sendiri. Mari kita lanjutkan dengan artikel Injeksi Ketergantungan di AngularJs.

Injeksi Layanan di AngularJs

Objek JavaScript tunggal yang berisi sekumpulan fungsi dikenal sebagai layanan di AngularJs. Logika yang diperlukan untuk menjalankan layanan terdapat dalam fungsi. Layanan dapat dibuat dengan menggunakan fungsi service () pada modul.

Contoh:

// definisikan modul

var firstApp = angular.module ('firstApp', [])

...

// buat layanan yang mendefinisikan metode kuadrat untuk mengembalikan kuadrat dari sebuah angka

firstApp.service ('CalciService', function (MathService) {

this.square = function (x) {

return MathService.multiply (x, x)

}

})

// masukkan layanan 'CalciService' ke dalam pengontrol

firstApp.controller ('CalciController', function ($ scope, CalciService,

defaultInput) {

$ scope.number = defaultInput

$ scope.result = CalciService.square ($ scope.number)

$ scope.square = function () {

$ scope.result = CalciService.square ($ scope.number)

}

})

Pemberi

Untuk membuat layanan atau pabrik secara internal selama fase konfigurasi, kami menggunakan Penyedia. Penyedia adalah metode pabrik khusus dengan fungsi get () yang digunakan untuk mengembalikan nilai / layanan / pabrik.

Contoh:

// definisikan modul

var firstApp = angular.module ('firstApp', [])

...

// buat layanan menggunakan provider yang mendefinisikan metode kuadrat untuk mengembalikan

kuadrat angka.

firstApp.config (function ($ sediakan) {

$ provider.provider ('MathService', function () {

ini. $ get = function () {

var factory =

pabrik.multiply = fungsi (x, y) {

kembali x * y

}

kembali ke pabrik

}

})

})

Konstan

Karena pengguna tidak dapat memasukkan nilai ke dalam fungsi module.config (), kami menggunakan konstanta. Konstanta digunakan untuk meneruskan nilai pada fase konfigurasi.

firstApp.constant ('configParam', 'nilai konstan')

Contoh:

Arahan yang disebutkan di atas dapat digunakan dengan cara berikut:

Injeksi Ketergantungan

Contoh Kuadrat AngularJS

Masukkan nomor apa saja:

X2

Hasil: {{result}}

var firstApp = angular.module ('firstApp', [])

firstApp.config (function ($ sediakan) {

$ provider.provider ('MathService', function () {

ini. $ get = function () {

var factory =

pabrik.multiply = fungsi (x, y) {

kembali x * y

print_r menjadi string

}

kembali ke pabrik

}

})

})

firstApp.value ('defaultInput', 6)

firstApp.factory ('MathService', function () {

var factory =

pabrik.multiply = fungsi (x, y) {

kembali x * y

}

kembali ke pabrik

})

firstApp.service ('CalciService', function (MathService) {

this.square = function (x) {

return MathService.multiply (x, x)

}

})

firstApp.controller ('CalciController', function ($ scope, CalciService, defaultInput) {

$ scope.number = defaultInput

$ scope.result = CalciService.square ($ scope.number)

$ scope.square = function () {

$ scope.result = CalciService.square ($ scope.number)

}

})

KELUARAN:

injeksi ketergantungan di angularjs

Dengan ini, kita sampai pada akhir artikel Injeksi Ketergantungan di AngularJs ini. C lihat saja oleh Edureka, perusahaan pembelajaran online tepercaya dengan jaringan lebih dari 250.000 pelajar yang puas dan tersebar di seluruh dunia.

Ada pertanyaan untuk kami? Harap sebutkan di bagian komentar di Injeksi Ketergantungan ini di AngularJs dan kami akan menghubungi Anda kembali.