Menyuntik Perkhidmatan ke dalam Perkhidmatan Lain dalam Sudut 2 (Beta)
Perkhidmatan suntikan ke dalam komponen adalah mudah menggunakan penghias @Component. Walau bagaimanapun, menyuntik perkhidmatan di luar komponen menimbulkan cabaran.
Pernyataan Masalah
Dalam Angular 2, kami ingin mengelak daripada menyediakan perkhidmatan secara manual dalam perkhidmatan lain, seperti yang dilihat dalam coretan kod berikut:
export class MyFirstSvc { } export class MySecondSvc { constructor() { this.helpfulService = new MyFirstSvc(); } } export class MyThirdSvc { constructor() { this.helpfulService = new MyFirstSvc(); } }
Penyelesaian
Penyelesaian melibatkan penggunaan penghias @Injectable pada perkhidmatan yang ingin kami suntik. Penghias ini menyediakan parameter pembina perkhidmatan untuk suntikan pergantungan.
Hierarki Penyuntik
Untuk memahami cara suntikan berfungsi, adalah penting untuk memahami konsep hierarki penyuntik:
Apabila menyuntik perkhidmatan ke dalam komponen atau perkhidmatan lain, Angular2 mencari penyedia dalam susunan berikut:
Perkongsian Pembekal
Hierarki penyuntik membenarkan perkongsian terkawal kejadian perkhidmatan :
Contoh
@Injectable() export class Service1 { constructor(service2:Service2) { this.service2 = service2; } getData() { return this.service2.getData(); } }
@Injectable() export class Service2 { getData() { return [{ message: 'message1' }, { message: 'message2' }]; } }
Dalam contoh ini:
Sumber
Atas ialah kandungan terperinci Bagaimanakah saya boleh menyuntik perkhidmatan ke dalam perkhidmatan lain dalam Angular 2?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!