import { Component , OnInit } dan '@angular/core' import { MessageService } dan '../services/message.service'
@Component ({
selektor : 'oddiy xabar' ,
templateUrl : './simple-message.component.html' , styleUrls : [ './simple-message.component.css' ]
})
eksport sinf SimpleMessageComponent asboblar OnInit {
xabar : string konstruktor (
xususiy messageService : MessageService
) {} ngOnInit() {
bu . messageService . getMessage (). obuna bo'ling ( javob =>
bu . xabar = javob . xabar
)
}
}
Angular-ning AoT kompilyatori komponentingiz konstruktori oladigan parametrlarni ko'rib chiqadi, ularning turlarini ajratib oladi (masalan, MessageService ) va tegishli bog'liqlik injektorining bog'liqlik xaritasida o'ziga xos turdagi bog'liqlikni qidiradi. So'ngra u bu bog'liqlikni ( yangi - uni) amalga oshiradi, agar u hali yaratilmagan bo'lsa va uni SimpleMessageComponent misolining konstruktoriga o'tkazadi. Bu DI ishlarining barchasi juda murakkab, ammo ilovangiz o'sib borishi bilan qulay bo'lishi mumkin va sizda ilova qanday sozlanganiga qarab foydalanishingiz mumkin bo'lgan bir nechta bog'liqliklar mavjud (masalan,
ProductionAPIService versus DevelopmentAPIService ) yoki uni sinovdan o'tkazishda ( MockAPI Service ).
Keling, xizmatni qanday aniqlashni qisqacha ko'rib chiqaylik:
import { Injectable } dan '@angular/core' import { HttpClient } dan '@angular/common/http'
@Injectable ({ berilgan : "ildiz"
})
eksport sinf MessageService { konstruktor ( xususiy http : HttpClient ) {}
getMessage() {
qaytish bu . http . olish ( '/api/message' )
}
}
Injectable narsa sifatida ro'yxatdan o'tkazish uchun yana TypeScript dekoratorlaridan foydalanamiz va biz uning ilovaning ildiz darajasida yoki submodulda taqdim etilganligini aniqlaymiz. Bu erda biz MessageService xizmatini ro'yxatdan o'tkazdik , bu bizga uni ilovamizning istalgan joyiga kiritish imkonini beradi. Har qanday komponent yoki xizmat konstruktorida biz shunchaki MessageService-ni so'rashimiz mumkin va Angular sehrli tarzda uni o'tkazishga g'amxo'rlik qiladi.
Ushbu ikkita mashhur frontend ramkalaridan qanday qilib xavfsiz foydalanishni bilib, keling, frontend va backend o'rtasidagi interfeysni yozishga o'tamiz.
Do'stlaringiz bilan baham: |