ΠΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΠ½ΠΊΡΠΈΡ Angular inject()
, ΡΡΠΎΠ±Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΡΡΡΠ»ΠΊΡ Π½Π° ΡΠΎΠΊΠ΅Π½ ΠΈΠ· Π°ΠΊΡΠΈΠ²Π½ΠΎΠ³ΠΎ Π² Π΄Π°Π½Π½ΡΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ ΠΈΠ½ΠΆΠ΅ΠΊΡΠΎΡΠ°. ΠΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΅Π³ΠΎ Π² factory
ΠΏΡΠΎΠ²Π°ΠΉΠ΄Π΅ΡΠ°Ρ
ΠΈΠ»ΠΈ ΡΠ΅ΡΠ²ΠΈΡΠ°Ρ
, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ:
ΠΠΎΠ΄ΡΠΎΠ±Π½Π΅Π΅ ΠΎ InjectionToken
ΠΏΠΎΡΡΠ°Π²ΡΠΈΠΊΠ°Ρ
ΡΠ°Π±ΡΠΈΠΊ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΎΡΠΈΡΠ°ΡΡ Π² ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅:
ΠΠ°ΡΠΈΠ½Π°Ρ Ρ Angular v14, ΠΌΡ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΠ½ΠΊΡΠΈΡ inject()
Π² ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°Ρ
, Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ²Π°Ρ
ΠΈ ΠΊΠ°Π½Π°Π»Π°Ρ
. ΠΠ½ ΠΎΡΠΊΡΡΠ²Π°Π΅Ρ ΡΠ΅Π»ΡΠΉ Π½ΠΎΠ²ΡΠΉ ΠΌΠΈΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠ΅ΠΉ. ΠΡΠΏΠΎΠ»ΡΠ·ΡΡ ΡΠΈΡΡΠ΅ΠΌΡ DI, ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ. ΠΠ½Π΅ Π½ΡΠ°Π²ΠΈΡΡΡ Π½Π°Π·ΡΠ²Π°ΡΡ ΡΡΠΎ ΡΡΠ½ΠΊΡΠΈΡ DI:
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ:
ΠΠΎΡ Π΅ΡΠ΅ ΠΎΠ΄ΠΈΠ½ ΠΏΡΠΈΠΌΠ΅Ρ, ΠΊΠΎΡΠΎΡΡΠΉ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ Π½Π°Π±Π»ΡΠ΄Π°Π΅ΠΌΡΡ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ° Π·Π°ΠΏΡΠΎΡΠ° timespan
:
Angular ΡΠ°ΠΊΠΆΠ΅ Π΄ΠΎΠ±Π°Π²ΠΈΠ» Ρ
ΡΠΊ Ρ ΠΈΠΌΠ΅Π½Π΅ΠΌ onDestroy
Π² ViewRef
, Π³Π΄Π΅ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ Π·Π°ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠΎΠ²Π°ΡΡ Π½Π°ΡΡ Π»ΠΎΠ³ΠΈΠΊΡ ΠΎΡΠΈΡΡΠΊΠΈ. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΡΠ΅ΠΏΠ΅ΡΡ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΠΌΠΎΡΠ½ΡΠ΅ Π²Π΅ΡΠΈ, ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ untilDestroyed
:
ΠΡ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ NodeInjector
:
ΠΠ³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄Π»Ρ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ Π±ΠΎΠ»Π΅Π΅ ΡΠΈΡΡΠΎΠ³ΠΎ ΠΈ Π½Π°Π΄Π΅ΠΆΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ΄Ρ ΠΎΠ΄Π° Π΄Π»Ρ Π°Π²ΡΠΎΡΠΎΠ² Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ:
ΠΡΠΎ, Π½Π΅ΡΠΎΠΌΠ½Π΅Π½Π½ΠΎ, ΠΎΡΠ΅Π½Ρ ΠΌΠΎΡΠ½Π°Ρ ΡΡΠ½ΠΊΡΠΈΡ, Π½ΠΎ Π΄Π°Π²Π°ΠΉΡΠ΅ ΠΏΠΎΡΠΌΠΎΡΡΠΈΠΌ ΠΈ Π½Π° ΠΌΠΈΠ½ΡΡΡ.
ΠΠΎ-ΠΏΠ΅ΡΠ²ΡΡ
, inject()
ΠΌΠΎΠΆΠ½ΠΎ Π²ΡΠ·ΡΠ²Π°ΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π² constructor
, ΠΏΠΎΡΡΠΎΠΌΡ ΠΌΡ Π½Π΅ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ inputs
ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°. ΠΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΎΠ±ΠΎΠΉΡΠΈ ΡΡΠΎ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ closures
, Π½ΠΎ ΠΏΠΎΠ»ΡΡΠΈΠ»ΠΈ Π»ΠΈ ΠΌΡ ΡΡΠΎ-Π½ΠΈΠ±ΡΠ΄Ρ?
ΠΠΎ-Π²ΡΠΎΡΡΡ
, ΡΡΠΎ ΡΡΠ»ΠΎΠΆΠ½ΡΠ΅Ρ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅. Π― Π½Π΅ Π²ΠΎΠ·ΡΠ°ΠΆΠ°Ρ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ Ρ ΡΠ°Π±ΠΎΡΠ°Ρ Π½Π°ΠΏΡΡΠΌΡΡ Ρ Cypress
ΠΈ Π½ΠΈΡΠ΅Π³ΠΎ Π½Π΅ ΠΈΠ·Π΄Π΅Π²Π°ΡΡΡ, Π½ΠΎ Π² Π²Π°ΡΠ΅ΠΌ ΡΠ»ΡΡΠ°Π΅ ΡΡΠΎ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΎΠΉ.
Π ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅Π΅, Π½ΠΎ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅ Π²Π°ΠΆΠ½ΠΎΠ΅: ΡΡΠΎ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠΊΠ°Π·Π°ΡΡΡΡ ΠΌΠ°Π³ΠΈΠ΅ΠΉ (ΠΏΠΎΡ ΠΎΠΆΠ΅ Π½Π° Ρ ΡΠΊΠΈ React), Π° Ρ Π½Π΅ ΡΠ»ΠΈΡΠΊΠΎΠΌ Π»ΡΠ±Π»Ρ ΠΌΠ°Π³ΠΈΡ, Π² ΠΎΡΠ»ΠΈΡΠΈΠ΅ ΠΎΡ ΠΌΠΎΠΈΡ Π΄Π΅ΡΠ΅ΠΉ π
ΠΠ°ΠΊΠ»ΡΡΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΠΌΡΡΠ»ΠΈ
ΠΡΠΎ ΠΎΡΠ΅Π½Ρ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½Π°Ρ ΡΡΠ½ΠΊΡΠΈΡ. Π― Π΄ΠΎ ΡΠΈΡ ΠΏΠΎΡ Π½Π΅ ΡΠ²Π΅ΡΠ΅Π½, ΠΊΠ°ΠΊ Ρ ΠΊ ΡΡΠΎΠΌΡ ΠΎΡΠ½ΠΎΡΡΡΡ, Π½ΠΎ Π½Π°ΠΌ ΠΏΡΠΈΠ΄Π΅ΡΡΡ ΠΏΠΎΠ΄ΠΎΠΆΠ΄Π°ΡΡ ΠΈ ΠΏΠΎΡΠΌΠΎΡΡΠ΅ΡΡ, ΠΊΠ°ΠΊ ΡΡΠΎ Π²ΠΎΡΠΏΡΠΈΠΌΠ΅Ρ ΡΠΎΠΎΠ±ΡΠ΅ΡΡΠ²ΠΎ.
ΠΠΎΠ΄ΠΏΠΈΡΠΈΡΠ΅ΡΡ Π½Π° ΠΌΠ΅Π½Ρ Π² Medium ΠΈΠ»ΠΈ Twitter, ΡΡΠΎΠ±Ρ ΡΠ·Π½Π°ΡΡ Π±ΠΎΠ»ΡΡΠ΅ ΠΎΠ± Angular ΠΈ JS!