Angular'da bağımlılık enjeksiyonu (DI), framework'ün en güçlü özelliklerinden biridir. Bağımlılık enjeksiyonunu, Angular'ın uygulamanız için çalışma zamanında ihtiyaç duyduğunuz kaynakları sağlama yeteneği olarak düşünün. Bir bağımlılık, bir servis veya başka bir kaynak olabilir.
NOTE: Temel kılavuzda bağımlılık enjeksiyonu hakkında daha fazla bilgi edinin.
Bu aktivitede, injectable (enjekte edilebilir) bir servis oluşturmayı öğreneceksiniz.
Bir servisi kullanmanın yollarından biri, veriler ve API'lerle etkileşim kurmak için bir aracı olarak görev yapmasıdır. Bir servisi yeniden kullanılabilir kılmak için mantığı servis içinde tutmalı ve ihtiyaç duyulduğunda uygulama genelinde paylaşmalısınız.
Bir servisi DI sistemi tarafından enjekte edilmeye uygun hale getirmek için @Injectable dekoratörünü kullanın. Örneğin:
@Injectable({
providedIn: 'root',
})
class UserService {
// methods to retrieve and return data
}
@Injectable dekoratörü, DI sistemine UserService'in bir sınıfta talep edilmeye hazır olduğunu bildirir. providedIn bu kaynağın hangi kapsamda kullanılabilir olduğunu belirler. Şimdilik, providedIn: 'root' ifadesinin UserService'in tüm uygulama genelinde kullanılabilir olduğu anlamına geldiğini anlamak yeterlidir.
Pekala, siz deneyin:
-
@Injectabledekoratörünü ekleyincar.service.tsdosyasındaki kodu@Injectabledekoratörünü ekleyerek güncelleyin. -
Dekoratörü yapılandırın
Dekoratöre aktarılan nesnedeki değerler, dekoratörün yapılandırması olarak kabul edilir.
car.service.tsdosyasındaki@InjectabledekoratörünüprovidedIn: 'root'yapılandırmasını içerecek şekilde güncelleyin.TIP: Doğru sözdizimini bulmak için yukarıdaki örneği kullanın.
Aferin, bu servis artık injectable (enjekte edilebilir) ve eğlenceye katılabilir. Servis artık injectable olduğuna göre, bir bileşene enjekte etmeyi deneyelim.