ู…ุง ุงู„ุฐูŠ ูŠู…ูƒู† ูˆุถุนู‡ ููŠ ุขู„ูŠุฉ ุญู‚ู† ุงู„ุชุจุนูŠุฉ ููŠ AngularุŸ

ูŠู…ูƒู† ู„ูƒู„ ู…ุทูˆุฑ Angular ุชู‚ุฑูŠุจู‹ุง ุฅูŠุฌุงุฏ ุญู„ ู„ู…ุดูƒู„ุชู‡ู… ููŠ Dependency Injection. ุธู‡ุฑ ู‡ุฐุง ุจูˆุถูˆุญ ููŠ ุงู„ุชุนู„ูŠู‚ุงุช ุนู„ู‰ ู…ู‚ุงู„ุชูŠ ุงู„ุฃุฎูŠุฑุฉ . ู†ุธุฑ ุงู„ู†ุงุณ ููŠ ุงู„ุฎูŠุงุฑุงุช ุงู„ู…ุฎุชู„ูุฉ ู„ู„ุนู…ู„ ู…ุน ุงู„ุจูŠุงู†ุงุช ู…ู† DI ุŒ ูˆู‚ุงุฑู†ูˆุง ู…ุง ูŠู†ุงุณุจู‡ู… ู…ู† ู…ูˆู‚ู ู…ุนูŠู†. ู‡ุฐุง ุฃู…ุฑ ุฑุงุฆุน ู„ุฃู† ู‡ุฐู‡ ุงู„ุฃุฏุงุฉ ุงู„ุจุณูŠุทุฉ ุชู…ู†ุญู†ุง ุงู„ูƒุซูŠุฑ ู…ู† ุงู„ุงุญุชู…ุงู„ุงุช.



ู„ูƒู† ุงู„ุนุฏูŠุฏ ู…ู† ุงู„ุฃุดุฎุงุต ุงู„ุฐูŠู† ุฃู„ุบูˆุง ุงุดุชุฑุงูƒูŠ ู…ู† ุงู„ุตุนุจ ุนู„ูŠู‡ู… ูู‡ู… DI ูˆู‚ุฏุฑุงุชู‡ุง ููŠ Angular. ู„ุง ูŠูˆุฌุฏ ุงู„ูƒุซูŠุฑ ู…ู† ุงู„ู…ูˆุงุฏ ุนู„ู‰ ุงู„ุฅู†ุชุฑู†ุช ุญูˆู„ ูƒูŠููŠุฉ ุงุณุชุฎุฏุงู… DI ุจุดูƒู„ ูุนุงู„ ุŒ ูˆุจุงู„ู†ุณุจุฉ ู„ู„ุนุฏูŠุฏ ู…ู† ุงู„ู…ุทูˆุฑูŠู† ูŠุชุนู„ู‚ ุงู„ุฃู…ุฑ ุจุงู„ุนู…ู„ ู…ุน ุงู„ุฎุฏู…ุงุช ุงู„ุนุงู„ู…ูŠุฉ ุฃูˆ ุชู…ุฑูŠุฑ ุงู„ุจูŠุงู†ุงุช ุงู„ุนุงู„ู…ูŠุฉ ู…ู† ุฌุฐุฑ ุงู„ุชุทุจูŠู‚ ุฅู„ู‰ ุงู„ู…ูƒูˆู†ุงุช.



ุฏุนู†ุง ู†ู„ู‚ูŠ ู†ุธุฑุฉ ุฃุนู…ู‚ ุนู„ู‰ ู‡ุฐู‡ ุงู„ุขู„ูŠุฉ ููŠ Angular.









ู‡ู„ ุชุนุฑู ุงุฏู…ุงู†ูƒุŸ



ููŠ ุจุนุถ ุงู„ุฃุญูŠุงู† ุŒ ู„ูŠุณ ู…ู† ุงู„ุณู‡ู„ ูู‡ู… ุนุฏุฏ ุงู„ุชุจุนูŠุงุช ุงู„ู…ูˆุฌูˆุฏุฉ ููŠ ุงู„ุชุนู„ูŠู…ุงุช ุงู„ุจุฑู…ุฌูŠุฉ ุงู„ุฎุงุตุฉ ุจูƒ.



ุนู„ู‰ ุณุจูŠู„ ุงู„ู…ุซุงู„ ุŒ ุฃู„ู‚ ู†ุธุฑุฉ ุนู„ู‰ ู‡ุฐู‡ ุงู„ูุฆุฉ ุงู„ุฒุงุฆูุฉ ูˆุงุญุณุจ ุนุฏุฏ ุงู„ุชุจุนูŠุงุช ุงู„ุชูŠ ุชู…ุชู„ูƒู‡ุง:



import { API_URL } from '../../../env/api-url';
import { Logger } from '../../services/logger';
 
class PseudoClass {
   request() {
       fetch(API_URL).then(...);
   }
 
   onError(error) {
       const logger = new Logger();
 
       logger.log(document.location, error);
   }
}


ุฅุฌุงุจุฉ
fetch โ€” API, , , .



API_URL โ€” ( ).



new Logger() โ€” , .



document โ€” API .





ูˆู…ุง ุงู„ุฎุทุฃุŒ ู…ุง ุงู„ู…ุดูƒู„ุฉุŸ



ุนู„ู‰ ุณุจูŠู„ ุงู„ู…ุซุงู„ ุŒ ูŠุตุนุจ ุงุฎุชุจุงุฑ ู…ุซู„ ู‡ุฐู‡ ุงู„ูุฆุฉ ู„ุฃู†ู‡ุง ุชุนุชู…ุฏ ุนู„ู‰ ุงู„ุจูŠุงู†ุงุช ุงู„ู…ุณุชูˆุฑุฏุฉ ู…ู† ู…ู„ูุงุช ุฃุฎุฑู‰ ูˆูƒูŠุงู†ุงุช ู…ุญุฏุฏุฉ ููŠู‡ุง.



ู…ูˆู‚ู ุขุฎุฑ: ุณูŠุนู…ู„ ุงู„ู…ุณุชู†ุฏ ูˆุงู„ุฌู„ุจ ุจุณู„ุงุณุฉ ููŠ ู…ุชุตูุญูƒ. ูˆู„ูƒู† ุฅุฐุง ุงุญุชุฌุช ูŠูˆู…ู‹ุง ู…ุง ุฅู„ู‰ ู†ู‚ู„ ุงู„ุชุทุจูŠู‚ ุฅู„ู‰ Server Side Rendering ุŒ ูู‚ุฏ ู„ุง ุชูƒูˆู† ุงู„ู…ุชุบูŠุฑุงุช ุงู„ุนุงู…ุฉ ุงู„ุถุฑูˆุฑูŠุฉ ููŠ ุจูŠุฆุฉ nodejs.



ุฅุฐู† ู…ุง ู‡ูˆ DI ูˆู„ู…ุงุฐุง ู‡ูˆ ู…ุทู„ูˆุจุŸ



ูŠู‚ูˆู… Dependency Injection ุจุฅุฏุงุฑุฉ ุงู„ุชุจุนูŠุงุช ุฏุงุฎู„ ุงู„ุชุทุจูŠู‚. ุจุงู„ู†ุณุจุฉ ู„ู†ุง ุŒ ูƒู…ุทูˆุฑูŠู† Angular ุŒ ูุฅู† ู‡ุฐุง ุงู„ู†ุธุงู… ุจุณูŠุท ุฌุฏู‹ุง. ู‡ู†ุงูƒ ุนู…ู„ูŠุชุงู† ุฑุฆูŠุณูŠุชุงู†: ูˆุถุน ุดูŠุก ู…ุง ููŠ ุดุฌุฑุฉ ุงู„ุชุจุนูŠุฉ ุฃูˆ ุงู„ุญุตูˆู„ ุนู„ู‰ ุดูŠุก ู…ู†ู‡ุง.



ู„ู„ุญุตูˆู„ ุนู„ู‰ ู…ู†ุธูˆุฑ ุฃูƒุซุฑ ู†ุธุฑูŠู‹ุง ุญูˆู„ DI ุŒ ุงู‚ุฑุฃ ุนู† ุนูƒุณ ู…ุจุฏุฃ ุงู„ุชุญูƒู… . ูŠู…ูƒู†ูƒ ุฃูŠุถู‹ุง ู…ุดุงู‡ุฏุฉ ู…ู‚ุงุทุน ููŠุฏูŠูˆ ุดูŠู‚ุฉ ุญูˆู„ ุงู„ู…ูˆุถูˆุน: ุณู„ุณู„ุฉ ู…ู‚ุงุทุน ููŠุฏูŠูˆ ุญูˆู„ IoC ูˆ DI ู…ู† Ilya Klimov ุจุงู„ู„ุบุฉ ุงู„ุฑูˆุณูŠุฉ ุฃูˆ ู…ู‚ุทุน ููŠุฏูŠูˆ ู‚ุตูŠุฑ ุญูˆู„ IoC ุจุงู„ู„ุบุฉ ุงู„ุฅู†ุฌู„ูŠุฒูŠุฉ.



ูƒู„ ุงู„ุณุญุฑ ูŠุฃุชูŠ ู…ู† ุงู„ุชุฑุชูŠุจ ุงู„ุฐูŠ ู†ูˆุฑุฏ ุจู‡ ูˆู†ุฃุฎุฐ ุงู„ุชุจุนูŠุงุช.



ูƒูŠู ุชุนู…ู„ ุงู„ู†ุทุงู‚ุงุช ููŠ DI:





ู…ุงุฐุง ูŠู…ูƒู†ู†ุง ุฃู† ู†ุถุน ููŠ DIุŸ



ุฃูˆู„ู‰ ุนู…ู„ูŠุงุช ุดุฑูƒุฉ DI ู‡ูŠ ุฅุฏุฎุงู„ ุดูŠุก ููŠู‡ุง. ููŠ ุงู„ูˆุงู‚ุน ุŒ ู„ู‡ุฐุง ุงู„ุบุฑุถ ุŒ ูŠุณู…ุญ ู„ู†ุง Angular ุจูƒุชุงุจุฉ ู…ุฌู…ูˆุนุฉ ุงู„ู…ูˆูุฑูŠู† ููŠ ู…ุตู…ู…ูŠ ูˆุญุฏุงุชู†ุง ุฃูˆ ู…ูƒูˆู†ุงุชู†ุง ุฃูˆ ุชูˆุฌูŠู‡ุงุชู†ุง. ุฏุนูˆู†ุง ู†ุฑู‰ ู…ุง ูŠู…ูƒู† ุฃู† ุชุชูƒูˆู† ู…ู†ู‡ ู‡ุฐู‡ ุงู„ู…ุตููˆูุฉ.



ุชูˆููŠุฑ ุงู„ุทุจู‚ุฉ



ุนุงุฏุฉู‹ ู…ุง ูŠุนุฑู ูƒู„ ู…ุทูˆุฑ Angular ู‡ุฐุง. ู‡ุฐุง ู‡ูˆ ุงู„ุญุงู„ ุนู†ุฏ ุฅุถุงูุฉ ุฎุฏู…ุฉ ุฅู„ู‰ ุชุทุจูŠู‚.



ูŠูู†ุดุฆ Angular ู…ุซูŠู„ุงู‹ ู„ู„ูุฆุฉ ุนู†ุฏ ุทู„ุจู‡ ู„ุฃูˆู„ ู…ุฑุฉ. ูˆู…ุน ุงู„ุฒุงูˆูŠ 6ุŒ ูุฅู†ู†ุง ูŠู…ูƒู† ุฃู† ุงู„ุทุจู‚ุงุช ู„ุง ูŠูƒุชุจ ููŠ ู…ุฌู…ูˆุนุฉ ู…ุฒูˆุฏูŠ ุนู„ู‰ ุงู„ุฅุทู„ุงู‚ุŒ ูˆู„ูƒู† ุงู‚ูˆู„ ุงู„ูุฆุฉ ู†ูุณู‡ุง ุนู† ู…ูƒุงู† ููŠ DI ูŠุฌุจ ุฃู† ุชุฐู‡ุจ ู…ุน providedIn :



providers: [
   {
       provide: SomeService,
       useClass: SomeService
   },
   // Angular        :
   SomeService
]




ุชู‚ุฏูŠู… ุงู„ู‚ูŠู…



ูŠู…ูƒู† ุฃูŠุถู‹ุง ุชูˆููŠุฑ ุงู„ู‚ูŠู… ุงู„ุซุงุจุชุฉ ุนุจุฑ DI. ูŠู…ูƒู† ุฃู† ุชูƒูˆู† ุฅู…ุง ุณู„ุณู„ุฉ ุจุณูŠุทุฉ ู…ุน ุนู†ูˆุงู† URL ู„ูˆุงุฌู‡ุฉ ุจุฑู…ุฌุฉ ุงู„ุชุทุจูŠู‚ุงุช ุงู„ุฎุงุตุฉ ุจูƒ ุŒ ุฃูˆ ุณู„ุณู„ุฉ ู…ุนู‚ุฏุฉ ูŠู…ูƒู† ู…ู„ุงุญุธุชู‡ุง ู…ุน ุงู„ุจูŠุงู†ุงุช.



ุนุงุฏุฉู‹ ู…ุง ูŠุชู… ุชู†ููŠุฐ ุชูˆููŠุฑ ุงู„ู‚ูŠู… ุฌู†ุจู‹ุง ุฅู„ู‰ ุฌู†ุจ ู…ุน InjectionToken . ู‡ุฐุง ุงู„ูƒุงุฆู† ู‡ูˆ ู…ูุชุงุญ ู…ุญุฑูƒ DI. ุฃูˆู„ุงู‹ ุŒ ุชู‚ูˆู„: "ุฃุฑูŠุฏ ุงู„ุญุตูˆู„ ุนู„ู‰ ู‡ุฐู‡ ุงู„ุจูŠุงู†ุงุช ู„ู‡ุฐุง ุงู„ู…ูุชุงุญ." ูˆุจุนุฏ ุฐู„ูƒ ุชุฃุชูŠ ุฅู„ู‰ DI ูˆุชุณุฃู„: "ู‡ู„ ูŠูˆุฌุฏ ุดูŠุก ุนู„ู‰ ู‡ุฐุง ุงู„ู…ูุชุงุญุŸ"



ุญุณู†ู‹ุง ุŒ ุงู„ุญุงู„ุฉ ุงู„ุดุงุฆุนุฉ ู‡ูŠ ุฅุนุงุฏุฉ ุชูˆุฌูŠู‡ ุงู„ุจูŠุงู†ุงุช ุงู„ุนุงู„ู…ูŠุฉ ู…ู† ุฌุฐุฑ ุงู„ุชุทุจูŠู‚.



ู…ู† ุงู„ุฃูุถู„ ุฑุคูŠุชู‡ ุฃุซู†ุงุก ุงู„ุนู…ู„ ุนู„ู‰ ุงู„ููˆุฑ ุŒ ู„ุฐู„ูƒ ุฏุนูˆู†ุง ู†ู„ู‚ูŠ ู†ุธุฑุฉ ุนู„ู‰ stackblitz ุจู…ุซุงู„:



ุชูˆุณูŠุน ุงู„ู…ุซุงู„






ู„ุฐู„ูƒ ุŒ ููŠ ุงู„ู…ุซุงู„ ุŒ ุญุตู„ู†ุง ุนู„ู‰ ุชุจุนูŠุฉ ู…ู† DI ุจุฏู„ุงู‹ ู…ู† ุงุณุชูŠุฑุงุฏู‡ุง ุจุดูƒู„ ุซุงุจุช ู…ู† ู…ู„ู ุขุฎุฑ ู…ุจุงุดุฑุฉู‹. ูˆู„ู…ุงุฐุง ู‡ูˆ ุฃูุถู„ ู„ู†ุงุŸ



  • ูŠู…ูƒู†ู†ุง ุชุฌุงูˆุฒ ู‚ูŠู…ุฉ ุงู„ุฑู…ุฒ ุงู„ู…ู…ูŠุฒ ุนู„ู‰ ุฃูŠ ู…ุณุชูˆู‰ ููŠ ุดุฌุฑุฉ DI ุฏูˆู† ุชุบูŠูŠุฑ ุงู„ู…ูƒูˆู†ุงุช ุงู„ุชูŠ ุชุณุชุฎุฏู…ู‡ุง.
  • ูŠู…ูƒู†ู†ุง ุฃู† ู†ุณุฎุฑ ู…ู† ู‚ูŠู…ุฉ ุงู„ุฑู…ุฒ ุงู„ู…ู…ูŠุฒ ุจุงู„ุจูŠุงู†ุงุช ุงู„ู…ู†ุงุณุจุฉ ุนู†ุฏ ุงู„ุงุฎุชุจุงุฑ.
  • ุงู„ู…ูƒูˆู† ู…ุนุฒูˆู„ ุชู…ุงู…ู‹ุง ูˆุณูŠุนู…ู„ ุฏุงุฆู…ู‹ุง ุจู†ูุณ ุงู„ุทุฑูŠู‚ุฉ ุจุบุถ ุงู„ู†ุธุฑ ุนู† ุงู„ุณูŠุงู‚.




ุชุฌู‡ูŠุฒ ุงู„ู…ุตุงู†ุน



ููŠ ุฑุฃูŠูŠ ุŒ ู‡ุฐู‡ ู‡ูŠ ุฃู‚ูˆู‰ ุฃุฏุงุฉ ููŠ ู…ุญุฑูƒ ุญู‚ู† ุงู„ุชุจุนูŠุฉ ููŠ Angular.



ูŠู…ูƒู†ูƒ ุฅู†ุดุงุก ุฑู…ุฒ ู…ู…ูŠุฒ ูŠูƒูˆู† ู†ุชูŠุฌุฉ ุงู„ุฌู…ุน ุจูŠู† ู‚ูŠู… ุงู„ุฑู…ูˆุฒ ุงู„ู…ู…ูŠุฒุฉ ุงู„ุฃุฎุฑู‰ ูˆุชุญูˆูŠู„ู‡ุง.



ููŠู…ุง ูŠู„ูŠ ู…ู„ู stackbitz ุขุฎุฑ ู…ุน ู…ุซุงู„ ุชูุตูŠู„ูŠ ู„ุฅู†ุดุงุก ู…ุตู†ุน ุจุชูŠุงุฑ.



ุชูˆุณูŠุน ุงู„ู…ุซุงู„






ูŠู…ูƒู†ูƒ ุงู„ุนุซูˆุฑ ุนู„ู‰ ุงู„ุนุฏูŠุฏ ู…ู† ุงู„ุญุงู„ุงุช ุนู†ุฏ ุชูˆููŠุฑ ู…ุตู†ุน ู„ู„ูˆู‚ุช ุฃูˆ ุฌุนู„ ุงู„ูƒูˆุฏ ุฃูƒุซุฑ ู‚ุงุจู„ูŠุฉ ู„ู„ู‚ุฑุงุกุฉ. ููŠ ุจุนุถ ุงู„ุฃุญูŠุงู† ู†ู‚ูˆู… ุจุญู‚ู† ุงู„ุชุจุนูŠุงุช ููŠ ุงู„ู…ูƒูˆู†ุงุช ูู‚ุท ู…ู† ุฃุฌู„ ุฏู…ุฌู‡ุง ุฃูˆ ุชุญูˆูŠู„ู‡ุง ุฅู„ู‰ ุชู†ุณูŠู‚ ู…ุฎุชู„ู ุชู…ุงู…ู‹ุง. ููŠ ุงู„ู…ู‚ุงู„ ุงู„ุณุงุจู‚ ุŒ ู†ุธุฑุช ุฅู„ู‰ ู‡ุฐู‡ ุงู„ู…ุดูƒู„ุฉ ุจู…ุฒูŠุฏ ู…ู† ุงู„ุชูุตูŠู„ ูˆุฃุธู‡ุฑุช ู†ู‡ุฌู‹ุง ุจุฏูŠู„ู‹ุง ู„ุญู„ ู…ุซู„ ู‡ุฐู‡ ุงู„ู…ูˆุงู‚ู.



ุชูˆููŠุฑ ู…ุซูŠู„ ู…ูˆุฌูˆุฏ



ู„ูŠุณุช ุญุงู„ุฉ ุดุงุฆุนุฉ ุŒ ูˆู„ูƒู† ู‡ุฐุง ุงู„ุฎูŠุงุฑ ูŠู…ูƒู† ุฃู† ูŠูƒูˆู† ุฃุฏุงุฉ ู…ููŠุฏุฉ ู„ู„ุบุงูŠุฉ.



ูŠู…ูƒู†ูƒ ูˆุถุน ูƒูŠุงู† ุชู… ุฅู†ุดุงุคู‡ ุจุงู„ูุนู„ ููŠ ุงู„ุฑู…ุฒ ุงู„ู…ู…ูŠุฒ. ูŠุนู…ู„ ุจุดูƒู„ ุฌูŠุฏ ู…ุน forwardRef .



ุงู†ุธุฑ ุฅู„ู‰ ู…ุซุงู„ ุขุฎุฑ ุนู„ู‰ stackblitz ู…ุน ุชูˆุฌูŠู‡ ูŠู‚ูˆู… ุจุชู†ููŠุฐ ุงู„ูˆุงุฌู‡ุฉ ูˆุงุณุชุจุฏุงู„ ุฑู…ุฒ ุขุฎุฑ ุจู€ useExisting. ููŠ ู‡ุฐุง ุงู„ู…ุซุงู„ ุŒ ู†ุฑูŠุฏ ุชุฌุงูˆุฒ ู‚ูŠู…ุฉ ุงู„ุฑู…ุฒ ุงู„ู…ู…ูŠุฒ ู„ู€ DI ูู‚ุท ู„ู„ู…ูƒูˆู†ุงุช ุงู„ูุฑุนูŠุฉ ู„ู„ุนู†ุตุฑ ุงู„ุฐูŠ ูŠุนู„ู‚ ุนู„ูŠู‡ ุงู„ุชูˆุฌูŠู‡. ุนู„ุงูˆุฉ ุนู„ู‰ ุฐู„ูƒ ุŒ ูŠู…ูƒู† ุฃู† ูŠูƒูˆู† ุงู„ุชูˆุฌูŠู‡ ู…ูˆุฌูˆุฏู‹ุง - ุงู„ุดูŠุก ุงู„ุฑุฆูŠุณูŠ ู‡ูˆ ุฃู†ู‡ ูŠู‚ูˆู… ุจุชู†ููŠุฐ ุงู„ูˆุงุฌู‡ุฉ ุงู„ู…ุทู„ูˆุจุฉ.



ุชูˆุณูŠุน ุงู„ู…ุซุงู„






ุงู„ุญูŠู„ DI Decorator



ุชุชูŠุญ ู„ูƒ ุฃุฏูˆุงุช ุชุฒูŠูŠู† DI ุฌุนู„ ุงุณุชุนู„ุงู…ุงุช DI ุฃูƒุซุฑ ู…ุฑูˆู†ุฉ.



ุฅุฐุง ูƒู†ุช ู„ุง ุชุนุฑู ุฌู…ูŠุน ุงู„ู…ุตู…ู…ูŠู† ุงู„ุฃุฑุจุนุฉ ุŒ ุฃูˆุตูŠ ุจู‚ุฑุงุกุฉ ู‡ุฐุง ุงู„ู…ู‚ุงู„ ุนู„ู‰ ู…ูˆู‚ุน Medium . ุงู„ู…ู‚ุงู„ุฉ ุจุงู„ู„ุบุฉ ุงู„ุฅู†ุฌู„ูŠุฒูŠุฉ ุŒ ูˆู„ูƒู† ู‡ู†ุงูƒ ุชุตูˆุฑุงุช ุฑุงุฆุนุฉ ูˆู…ูู‡ูˆู…ุฉ ุญูˆู„ ุงู„ู…ูˆุถูˆุน.



ู„ุง ูŠุนุฑู ุงู„ูƒุซูŠุฑ ู…ู† ุงู„ู†ุงุณ ุฃูŠุถู‹ุง ุฃู†ู‡ ูŠู…ูƒู† ุงุณุชุฎุฏุงู… ุฃุฏูˆุงุช ุชุฒูŠูŠู† DI ููŠ ู…ุฌู…ูˆุนุฉ deps ุŒ ูˆุงู„ุชูŠ ุชุนุฏ ุงู„ุญุฌุฌ ู„ู…ุตู†ุน ุงู„ู…ุฒูˆุฏูŠู†.




providers: [
   {
     provide: SOME_TOKEN,
     /**
      *     ,  
      * [new Decorator(), new Decorator(),..., TOKEN]
      * .
      *
      *      โ€˜nullโ€™,     
      * OPTIONAL_TOKEN
      */
     deps: [[new Optional(), OPTIONAL_TOKEN]],
     useFactory: someTokenFactory
   }
 ]




ู…ุตู†ุน ุชูˆูƒู†



ูŠุฃุฎุฐ ู…ูู†ุดุฆ InjectionToken ูˆุณูŠุทูŠู†.



ุงู„ูˆุณูŠุทุฉ ุงู„ุซุงู†ูŠุฉ ู‡ูŠ ูƒุงุฆู† ุจุชูƒูˆูŠู† ุฑู…ุฒ ู…ู…ูŠุฒ.



ู…ุตู†ุน ุงู„ุชูˆูƒู†ุงุช ู‡ูŠ ูˆุธูŠูุฉ ุชุณู…ู‰ ุงู„ู„ุญุธุฉ ุงู„ุชูŠ ูŠุทู„ุจ ููŠู‡ุง ุดุฎุต ู…ุง ู‡ุฐุง ุงู„ุฑู…ุฒ ู„ุฃูˆู„ ู…ุฑุฉ. ููŠ ุฐู„ูƒ ุŒ ูŠู…ูƒู†ูƒ ุญุณุงุจ ู‚ูŠู…ุฉ ู‚ูŠุงุณูŠุฉ ู…ุนูŠู†ุฉ ู„ู„ุฑู…ุฒ ุงู„ู…ู…ูŠุฒ ุฃูˆ ุญุชู‰ ุงู„ูˆุตูˆู„ ุฅู„ู‰ ูƒูŠุงู†ุงุช DI ุงู„ุฃุฎุฑู‰ ู…ู† ุฎู„ุงู„ ูˆุธูŠูุฉ ุงู„ุญู‚ู†.



ุฃู„ู‚ ู†ุธุฑุฉ ุนู„ู‰ ู…ุซุงู„ ู„ุชู†ููŠุฐ ูˆุธูŠูุฉ ุฏูู‚ ุงู„ู†ู‚ุฑ ุนู„ู‰ ุงู„ุฒุฑ ุŒ ูˆู„ูƒู† ู‡ุฐู‡ ุงู„ู…ุฑุฉ ููŠ ู…ุตู†ุน ุงู„ุฑู…ุฒ ุงู„ู…ู…ูŠุฒ



ุชูˆุณูŠุน ุงู„ู…ุซุงู„






ุฎุงุชู…ุฉ



ูŠุนุฏ DI in Angular ู…ูˆุถูˆุนู‹ุง ุฑุงุฆุนู‹ุง: ู„ู„ูˆู‡ู„ุฉ ุงู„ุฃูˆู„ู‰ ุŒ ู„ุง ูŠุญุชูˆูŠ ุนู„ู‰ ุงู„ุนุฏูŠุฏ ู…ู† ุงู„ุฃุฏูˆุงุช ูˆุงู„ุฃุฏูˆุงุช ุงู„ู…ุฎุชู„ูุฉ ู„ู„ุชุนู„ู… ุŒ ูˆู„ูƒู† ูŠู…ูƒู†ูƒ ุงู„ูƒุชุงุจุฉ ูˆุงู„ุชุญุฏุซ ู„ุณุงุนุงุช ุญูˆู„ ุงู„ุงุญุชู…ุงู„ุงุช ูˆุงู„ุงุณุชุฎุฏุงู…ุงุช ุงู„ุชูŠ ุชู‚ุฏู…ู‡ุง ู„ู†ุง.



ุขู…ู„ ุฃู† ุชูƒูˆู† ู‡ุฐู‡ ุงู„ู…ู‚ุงู„ุฉ ู‚ุฏ ุฃุนุทุชูƒ ุงู„ุฃุณุงุณ ุงู„ุฐูŠ ูŠู…ูƒู†ูƒ ู…ู† ุฎู„ุงู„ู‡ ุงู„ุชูˆุตู„ ุฅู„ู‰ ุญู„ูˆู„ ุฎุงุตุฉ ุจูƒ ู„ุชุจุณูŠุท ุงู„ุนู…ู„ ู…ุน ุงู„ุจูŠุงู†ุงุช ููŠ ุชุทุจูŠู‚ุงุชูƒ ูˆู…ูƒุชุจุงุชูƒ.



All Articles