Rumah >hujung hadapan web >tutorial js >Bagaimana untuk Menyuntik Perkhidmatan Di Luar Komponen dalam Angular 2?

Bagaimana untuk Menyuntik Perkhidmatan Di Luar Komponen dalam Angular 2?

Patricia Arquette
Patricia Arquetteasal
2024-11-26 05:25:13814semak imbas

How to Inject Services Outside of Components in Angular 2?

Suntikan Ketergantungan dalam Sudut 2: Perkhidmatan Suntikan Di Luar Komponen

Dalam Sudut 2, perkhidmatan suntikan ke dalam komponen adalah mudah menggunakan penghias @Component . Walau bagaimanapun, terdapat senario di mana anda mungkin perlu menyuntik perkhidmatan di luar komponen. Artikel ini meneroka cara untuk mencapai ini menggunakan suntikan pergantungan (DI).

Perkhidmatan Suntikan

Untuk mendayakan DI untuk perkhidmatan, ia mesti dihiasi dengan penghias @Injectable . Penghias ini menandakan kelas sebagai boleh disuntik, membenarkan parameternya disuntik. Ambil perhatian bahawa nama "Boleh Disuntik" sedikit mengelirukan, kerana ia tidak menjadikan kelas boleh disuntik sebaliknya menjadikannya boleh disuntik dalam erti kata bahawa parameternya boleh disuntik.

Mekanisme Suntikan Kebergantungan

Angular 2 menggunakan sistem penyuntik hierarki, dengan setiap tahap sepadan dengan komponen atau set komponen tertentu. Apabila sistem DI menghadapi pergantungan, ia mula-mula melihat dalam penyuntik semasa. Jika kebergantungan tidak ditemui, ia akan menaikkan hierarki penyuntik sehingga ia menemui pembekal untuk kebergantungan.

Perkhidmatan Menyuntik Merentasi Penyuntik

Untuk menyuntik perkhidmatan ke yang lain perkhidmatan, hanya tentukan kebergantungan dalam pembina perkhidmatan bergantung dan tambahkan penghias @Injectable kepada bergantung perkhidmatan.

Contohnya:

@Injectable()
export class MyFirstSvc {
  // ...
}

@Injectable()
export class MySecondSvc {
  constructor(private myFirstSvc: MyFirstSvc) {
    // ...
  }
}

Dalam contoh ini, MySecondSvc bergantung pada MyFirstSvc dan boleh disuntik ke dalam mana-mana penyuntik di mana MyFirstSvc tersedia.

Mendefinisikan Pembekal

Untuk menentukan pembekal a perkhidmatan, gunakan tatasusunan penyedia dalam penghias @Component atau NgModule. Sebagai contoh, jika anda ingin mentakrifkan MyFirstSvc sebagai pembekal dalam penyuntik aplikasi, anda boleh melakukannya seperti berikut:

@Component({
  // ...
  providers: [MyFirstSvc]
})
export class AppComponent {
  // ...
}

Kesimpulan

Dengan memahami hierarki sifat penyuntik dan penghias @Injectable, anda boleh menyuntik perkhidmatan di luar komponen dengan berkesan dalam Angular 2. Ini membolehkan anda membuat perkhidmatan modular dan boleh guna semula yang boleh disuntik dan dikongsi dengan mudah di seluruh aplikasi anda.

Atas ialah kandungan terperinci Bagaimana untuk Menyuntik Perkhidmatan Di Luar Komponen dalam Angular 2?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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