ΠΠΆΠΎΠ½, Π² Y031 Π²Ρ ΡΠΏΠΎΠΌΠΈΠ½Π°Π΅ΡΠ΅ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π΅:
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΡΠΈ ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΈ ΠΈ ΠΏΠΎΠ΄ΠΏΠΈΡΠΊΠ΅ Π½Π° ΡΠΎΠ±ΡΡΠΈΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ $ emit, $ broadcast ΠΈΠ»ΠΈ $ on ΡΠ°ΡΡΠΌΠΎΡΡΠΈΡΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΏΠ΅ΡΠ΅Π½ΠΎΡΠ° ΡΡΠΈΡ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² ΡΠ°Π±ΡΠΈΠΊΡ ΠΈ Π²ΡΠ·ΠΎΠ²Π° ΠΈΠ· ΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠ°.
ΠΠ΅ ΠΌΠΎΠ³Π»ΠΈ Π±Ρ Π²Ρ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΡΠ°ΡΡΠΊΠ°Π·Π°ΡΡ ΠΎ ΡΠΎΠΌ, ΠΊΠ°ΠΊ ΡΡΠΎ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ? ΠΡΠ»ΠΎ Π±Ρ Π½Π΅ΠΏΠ»ΠΎΡ ΠΎ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΎΠ±ΡΠ°Π·Π΅Ρ ΠΊΠΎΠ΄Π°!
Π― ΡΠΎΠΆΠ΅ Π·Π°Π΄ΡΠΌΠ°Π»ΡΡ ΠΎΠ± ΡΡΠΎΠΌ ΠΈ Π½Π°ΡΠ΅Π» ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ Π²ΠΎΠΏΡΠΎΡ / ΠΎΡΠ²Π΅Ρ stackOverflow: http://stackoverflow.com/questions/14056874/how-to-emit-events-from-a-factory
Π― Π½ΠΎΠ²ΠΈΡΠΎΠΊ Π² ΡΠΎΠΌ, ΡΡΠΎ ΠΊΠ°ΡΠ°Π΅ΡΡΡ angular, ΠΏΠΎΡΡΠΎΠΌΡ, Π΅ΡΠ»ΠΈ ΡΡΠΎ ΠΏΠ»ΠΎΡ Π°Ρ ΠΏΡΠ°ΠΊΡΠΈΠΊΠ°, ΠΊΡΠΎ-Π½ΠΈΠ±ΡΠ΄Ρ, ΠΏΠΎΠΆΠ°Π»ΡΠΉΡΡΠ°, ΡΠΊΠ°ΠΆΠΈΡΠ΅ ΠΌΠ½Π΅. :)
ΠΎΡΠ»ΠΈΡΠ½ΠΎΠ΅ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π·Π΄Π΅ΡΡ http://stackoverflow.com/questions/11252780/whats-the-correct-way-to-communicate-between-controllers-in-angularjs/19498009#19498009
Π― Π΄ΡΠΌΠ°Ρ, ΡΡΠΎ ΡΠ°ΠΊΠΆΠ΅ Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ ΡΠΎΠ³ΠΎ, ΡΠ°Π±ΠΎΡΠ°Π΅ΡΠ΅ Π»ΠΈ Π²Ρ Π² ΡΠΈΡΡΠΎ ΡΠ³Π»ΠΎΠ²ΠΎΠΌ ΠΏΡΠΎΠ΅ΠΊΡΠ΅ ΠΈΠ»ΠΈ Π² ΡΡΡΠ°ΡΠ΅Π²ΡΠ΅ΠΌ / Π³ΠΈΠ±ΡΠΈΠ΄Π½ΠΎΠΌ ΠΏΡΠΎΠ΅ΠΊΡΠ΅.
ΡΠΎ Π΅ΡΡΡ Π²Ρ Ρ
ΠΎΡΠΈΡΠ΅ ΠΏΠΎΠ΄Π΅Π»ΠΈΡΡΡΡ ΠΎΠ΄Π½ΠΈΠΌ ΠΈ ΡΠ΅ΠΌ ΠΆΠ΅ ΡΠΎΠ±ΡΡΠΈΠ΅ΠΌ Π²Π½ΡΡΡΠΈ ΠΈ ΡΠ½Π°ΡΡΠΆΠΈ ΡΠ³Π»ΠΎΠ²ΠΎΠΉ ΡΡΡΡΠΊΡΡΡΡ
ΠΏΡΠ΅Π²ΡΠ°ΡΠ΅Π½ΠΈΠ΅ pub / sub Π² ΡΠ°Π±ΡΠΈΠΊΡ ΡΠΏΡΠΎΡΠ°Π΅Ρ Π°Π»ΡΡΠ΅ΡΠ½Π°ΡΠΈΠ²Π½ΡΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ, Π·Π°ΠΌΠ΅Π½ΡΡΡΡΡ $ emit, $ broadcast.
Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ http://jonathancreamer.com/an-angular-event-bus-with-postal-js/
Π£ ΠΌΠ΅Π½Ρ ΡΠΎΠΆΠ΅ Π²ΠΎΠ·Π½ΠΈΠΊΠ»ΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Ρ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ΠΌ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π³ΠΎ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΎΡ Y031 :
Π Π°ΡΡΠΌΠΎΡΡΠΈΡΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ $ scope Π² ΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠ΅ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΈ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΡΠΈ ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΈ ΠΈ ΠΏΠΎΠ΄ΠΏΠΈΡΠΊΠ΅ Π½Π° ΡΠΎΠ±ΡΡΠΈΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ $ emit, $ broadcast ΠΈΠ»ΠΈ $ on ΡΠ°ΡΡΠΌΠΎΡΡΠΈΡΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΏΠ΅ΡΠ΅Π½ΠΎΡΠ° ΡΡΠΈΡ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² ΡΠ°Π±ΡΠΈΠΊΡ ΠΈ Π²ΡΠ·ΠΎΠ²Π° ΠΈΠ· ΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠ°.
ΠΡΠ°ΠΊ, Π²ΡΠ²ΠΎΠ΄ ΠΈΠ· Π²ΡΡΠ΅ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠ³ΠΎ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΡ - Π²ΠΎΠΎΠ±ΡΠ΅ ΠΈΠ·Π±Π΅Π³Π°ΡΡ ΡΡΠ°Π½ΡΠ»ΡΡΠΈΠΉ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΡΠ°Π±ΡΠΈΠΊ? ΠΡΠ»ΠΈ ΡΠ°ΠΊ, Ρ Π±Ρ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠΈΠ» Π΄ΡΡΠ³ΡΡ ΡΠΎΡΠΌΡΠ»ΠΈΡΠΎΠ²ΠΊΡ.
Π― Π΄ΡΠΌΠ°Ρ Π½Π΅ ΠΎ ΠΌΠ΅ΠΆΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠ½ΠΎΠΌ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠΈ, Π° ΠΎ ΡΠ΅ΡΡΠ΅Π·Π½ΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ, ΡΠ°ΠΊΠΈΡ ΠΊΠ°ΠΊ Π²Ρ ΠΎΠ΄ / Π²ΡΡ ΠΎΠ΄. ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΌΠ½Π΅, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΠΏΡΠΈΠ΄Π΅ΡΡΡ ΠΏΡΠΎΠΈΠ½ΡΠΎΡΠΌΠΈΡΠΎΠ²Π°ΡΡ ΠΎΠ± ΡΡΠΎΠΌ ΠΏΠΎΡΡΠΈ Π²ΡΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ, Π΅ΡΠ»ΠΈ ΠΌΠ½Π΅ ΠΊΠ°ΠΆΠ΅ΡΡΡ, ΡΡΠΎ ΡΡΠΎ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΡΡΠ°Ρ Π·Π°Π΄Π°ΡΠ° Π΄Π»Ρ ΡΡΠ°Π½ΡΠ»ΡΡΠΈΠΈ?
ΠΡΠ»ΠΈ Ρ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ ΠΏΠΎΠ½ΡΠ», Ρ Π΄ΡΠΌΠ°Ρ, Π²Ρ Π½Π΅ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ ΠΏΠΎΠ½ΡΠ»ΠΈ ΡΡΠΎΡ @sebastianhaas. ΠΡΠΎΡ ΠΎΡΡΡΠ²ΠΎΠΊ Π² ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²Π΅ ΠΏΠΎ ΡΡΠΈΠ»Ρ ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π΅Ρ ΠΏΠ΅ΡΠ΅Π½Π΅ΡΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ $emit
, $broadcast
ΠΈΠ»ΠΈ $on
Π½Π° ΡΠ°Π±ΡΠΈΠΊΡ, Π° Π½Π΅ Π·Π°ΠΌΠ΅Π½ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ _with_ ΡΠ°Π±ΡΠΈΠΊΠΎΠΉ.
Π‘ΠΏΠ°ΡΠΈΠ±ΠΎ Π·Π° ΠΎΡΠ²Π΅Ρ @zachlysobey! ΠΠ°, Π½ΠΎ ΠΊΠ°ΠΊ Π²Ρ ΡΡΠΎΠ³ΠΎ Π΄ΠΎΠ±ΡΠ΅ΡΠ΅ΡΡ? ΠΡΠ΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, Ρ Ρ
ΠΎΡΡ ΠΎΠ±Π½ΠΎΠ²ΠΈΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π² ΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠ΅ ΠΏΡΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΡ
ΡΡΠ°Π½ΡΠ»ΡΡΠΈΡΡ
. ΠΡΠ»ΠΈ Ρ ΠΏΠ΅ΡΠ΅Π½Π΅ΡΡ ΡΡΠΈ $on
Π½Π° ΡΠ°Π±ΡΠΈΠΊΡ, ΠΌΠ½Π΅ Π±ΡΠ΄Π΅Ρ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΠΎ, ΠΊΠ°ΠΊ ΡΠ½ΠΎΠ²Π° ΡΠΎΠΎΠ±ΡΠΈΡΡ ΠΎΠ± ΡΡΠΎΠΌ ΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΡ.
ΠΠΎΠ·Π²ΠΎΠ»ΡΡΠ΅ ΠΌΠ½Π΅ ΡΡΠΎΡΠ½ΠΈΡΡ ... Π£ ΠΌΠ΅Π½Ρ ΡΠ°ΠΌ Π±ΡΠ»ΠΎ Π·Π°ΠΏΡΡΠ°Π½Π½ΠΎΠ΅ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅. ΠΠ΅Π»ΠΎ Π² ΡΠΎΠΌ, ΡΡΠΎΠ±Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ $ scope ΡΠΎΠ»ΡΠΊΠΎ ΡΠΎΠ³Π΄Π°, ΠΊΠΎΠ³Π΄Π° ΡΡΠΎ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ. ΠΠΎΡ ΠΊΠΎΠ³Π΄Π° Π²Π°ΠΌ Π½ΡΠΆΠ΅Π½ ΠΎΠ±ΡΠ΅ΠΌ, ΡΡΠΎΠ±Ρ ΡΠΏΡΠ°Π²ΠΈΡΡΡΡ Ρ ΡΠ°Π±ΠΎΡΠΎΠΉ. ΠΡΠΎ Π²ΠΊΠ»ΡΡΠ°Π΅Ρ Π² ΡΠ΅Π±Ρ ΡΡΠ°Π½ΡΠ»ΡΡΠΈΡ ΠΈΠ»ΠΈ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ. ΠΡΠΎ Π½ΠΎΡΠΌΠ°Π»ΡΠ½ΠΎ Π² ΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠ΅ ΡΠΎΠ³Π΄Π° ΠΈ ΡΠΎΠ»ΡΠΊΠΎ ΡΠΎΠ³Π΄Π°, ΠΊΠΎΠ³Π΄Π° Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΠΎΡΠΏΡΠ°Π²ΠΈΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅. ΠΠΎ Π²Ρ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅ΡΡ ΠΈ Π΄ΡΡΠ³ΠΈΠ΅ Π²Π°ΡΠΈΠ°Π½ΡΡ.
Π― ΠΏΡΡΠ°Π»ΡΡ Π±ΡΡΡ ΠΎΡΡΠΎΡΠΎΠΆΠ½ΡΠΌ Π·Π΄Π΅ΡΡ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ Ρ ΠΎΡΡ Π·Π°ΠΏΡΠ΅ΡΠΈΡΡ scope.apply ΠΈ Π² ΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠ°Ρ .
Π― ΡΠ½ΡΠ» ΠΏΡΠΈΠ³ΠΎΠ²ΠΎΡ.
ΠΠΎΠ»ΡΡΠΎΠ΅ ΡΠΏΠ°ΡΠΈΠ±ΠΎ!
Π‘Π°ΠΌΡΠΉ ΠΏΠΎΠ»Π΅Π·Π½ΡΠΉ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΉ
ΠΎΡΠ»ΠΈΡΠ½ΠΎΠ΅ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π·Π΄Π΅ΡΡ http://stackoverflow.com/questions/11252780/whats-the-correct-way-to-communicate-between-controllers-in-angularjs/19498009#19498009