Services - nkiateam/angular-tutorial GitHub Wiki
service
Serviceλ μ΄ν리μΌμ΄μ μ΄ νμν κ°, ν¨μλ±μ κ²°ν©ν κ²μ μλ―Έν©λλ€. λλΆλΆμ κ²λ€μ μλΉμ€ λμμ΄ λ μ μμ΅λλ€. μλΉμ€λ μ ν΅μ μΌλ‘ μ μ μλ λͺ©μ μ κ°μ§ ν΄λμ€μ΄λ©° νΉμ ν μΌμ μνν©λλ€. μλΉμ€λ₯Ό μν΄ Angularμ λͺ μν΄μΌ ν κ²μ μμ΅λλ€. Angularλ μλΉμ€μ μ μλ₯Ό κ°μ§κ³ μμ§ μμ΅λλ€. μλΉμ€μ κΈ°λ³Έ ν΄λμ€λ μκ³ , μλΉμ€λ₯Ό λ±λ‘ν΄μΌν μ₯μλ μμ΅λλ€. νμ§λ§ Angular μ΄ν리μΌμ΄μ μμ μλΉμ€λ μ£Όμν μμμ λλ€. Componentλ μλΉμ€μ μ€μν μλΉμμ λλ€.
λ€μμ λΈλΌμ°μ μ½μμ λ‘κ·Έλ₯Ό μΆλ ₯νλ μλΉμ€μ μμμ λλ€.
app.logger.service.ts(class)
export class Logger {
log(msg: any) { console.log(msg); }
error(msg: any) { console.error(msg); }
warn(msg: any) { console.warn(msg); }
}
HeroSerivceλ νμ΄λ‘λ€μ κ°μ§κ³ μμ 리ν΄μ νλ κ²μ λλ€. HeroServiceλ Logger μλΉμ€μ λ λ€λ₯Έ μλ² ν΅μ μ μ²λ¦¬νλ BackendServiceμ μ°κ΄λμ΄ μμ΅λλ€.
app.hero.service.ts(class)
export class HeroService {
private heroes: Hero[] = [];
constructor(
private backend: BackendService,
private logger: Logger) { }
getHeroes() {
this.backend.getAll(Hero).then( (heroes: Hero[]) => {
this.logger.log(`Fetched ${heroes.length} heroes.`);
this.heroes.push(...heroes); // fill cache
});
return this.heroes;
}
}
μλΉμ€λ μ΄λλ μ§ μμ μ μμ΅λλ€. μ»΄ν¬λνΈ ν΄λμ€λ μμ‘΄μ μ λλ€. κ·Έλ€μ μλ²λ‘λΆν° λ°μ΄ν°λ₯Ό ν¨μΉν μ μκ³ , μ μ μ λ ₯μ κ²μ¬ν μ μμΌλ©° μ½μμ λ‘κ·Έλ₯Ό μ°μ§ μμ΅λλ€. μ΄λ¬ν μμ λ€μ μλΉμ€μ μμν©λλ€.
μ»΄ν¬λνΈμ μμ μ μ μ κ²½νμ νμ±ννκ±°λ μλμλ μμ΅λλ€. μ»΄ν¬λνΈλ viewμ μ΄ν리μΌμ΄μ λ‘μ§κ°μ μ€κ°μμ λλ€. μ’μ μ»΄ν¬λνΈλ νλ‘νΌν°μ ννκ³Ό λ°μ΄ν° λ°μΈλ©μ μν΄μλ§ μ¬μ©λ©λλ€. λλ¨Έμ§ λͺ¨λ κ²λ€μ μλΉμ€μ μμν©λλ€.
Angularλ μ΄λ¬ν μμΉμ κ°μνμ§ μμ΅λλ€. νμ§λ§ κ·Έλ μ§ μμΌλ©΄ 3000μ€μ§λ¦¬ μ»΄ν¬λνΈκ° μκΈΈ κ²μ λλ€.