Π Π°Π·Π½ΠΎΠ΅

ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ angular: Π’Π²Π΅Π΄Π΅Π½ΠΈΠ΅ Π² AngularJS. ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹

Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠ°Π½ΠΈΠ΅

Π‘ΠΎΠ»ΡŒΡˆΠΈΠ΅ сайты Π½Π° AngularJS

ΠœΡ‹ ΡƒΠΆΠ΅ рассказывали, ΠΏΠΎΡ‡Π΅ΠΌΡƒ ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡ΠΈΡ‚Π°Π΅ΠΌ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с AngularJS, Π° сСгодня Ρ…ΠΎΡ‚Π΅Π»ΠΈ Π±Ρ‹ ΠΏΠΎΠ΄Π΅Π»ΠΈΡ‚ΡŒΡΡ наблюдСниями ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊΠΈΠ΅ извСстныС сайты Π±Ρ‹Π»ΠΈ созданы с Π΅Π³ΠΎ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ.

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ AngularJS ΠΈ Π³Π΄Π΅ ΠΎΠ½ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ?

AngularJS (Angular, Ангулар) β€” это JS Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ для frontend-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ², с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ одностраничныС Π²Π΅Π±-прилоТСния (Single Page Application). На ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ взгляд Ρ‚Π°ΠΊΠΈΠ΅ прилоТСния Π½Π΅ ΠΎΡ‚Π»ΠΈΡ‡Π°ΡŽΡ‚ΡΡ ΠΎΡ‚ ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹Ρ… Π²Π΅Π±-страниц. Π’ΠΎΠ³Π΄Π° ΠΊΠ°ΠΊ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΏΠ΅Ρ€Π΅Π΄ Π½Π°ΠΌΠΈ Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅? Если ΠΊΠΎΠ³Π΄Π° ΠΏΡ€ΠΈΡ…ΠΎΠ΄ΠΈΡ‚ письмо, ΠΏΠΎΡΠ²Π»ΡΡŽΡ‚ΡΡ Π½ΠΎΠ²Ρ‹Π΅ записи Π² Π»Π΅Π½Ρ‚Π΅ Π΄Ρ€ΡƒΠ·Π΅ΠΉ ΠΈΠ»ΠΈ ΠΌΡ‹ ΠΏΠΎΠ΄Ρ‚Π²Π΅Ρ€ΠΆΠ΄Π°Π΅ΠΌ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΡƒ Ρ„ΠΎΡ€ΠΌΡ‹ страницу Π½Π΅ приходится ΠΏΠ΅Ρ€Π΅Π³Ρ€ΡƒΠΆΠ°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ обновлСния, Ρ‚ΠΎ ΠΏΠ΅Ρ€Π΅Π΄ Π½Π°ΠΌΠΈ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ прилоТСния Π½Π° AngularJS ΠΈΠ»ΠΈ Π΄Ρ€ΡƒΠ³ΠΎΠΌ JS Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠ΅. НапримСр, соврСмСнная вСрсия ΠΏΠΎΡ‡Ρ‚ΠΎΠ²ΠΎΠΉ слуТбы ΠΎΡ‚ Google β€” это Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅:


Однако AngularJS Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для создания Π²Π΅Π±-сайтов ΡΠΎΡ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ направлСния ΠΈ Π°Π½Π°Π»ΠΎΠ³ΠΎΠ² Google Docs. Π‘Ρ„Π΅Ρ€Π° примСнСния AngularJS Π³ΠΎΡ€Π°Π·Π΄ΠΎ ΡˆΠΈΡ€Π΅, ΠΎ Ρ‡Π΅ΠΌ ΡΠ²ΠΈΠ΄Π΅Ρ‚Π΅Π»ΡŒΡΡ‚Π²ΡƒΡŽΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ Π½ΠΈΠΆΠ΅. Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ с использованиСм AngularJS становится всС Π±ΠΎΠ»Π΅Π΅ ΠΈ Π±ΠΎΠ»Π΅Π΅ популярной, ΠΎ Ρ‡Π΅ΠΌ ΡΠ²ΠΈΠ΄Π΅Ρ‚Π΅Π»ΡŒΡΡ‚Π²ΡƒΠ΅Ρ‚ ΡΡ‚Ρ€Π΅ΠΌΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ рост количСства сайтов, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰ΠΈΡ… этот Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ, зафиксированный ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠ΅ΠΉ BuiltWith:


НиТС ΠΌΡ‹ собрали ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ AngularJS ΠΈΠ· самых Ρ€Π°Π·Π½Ρ‹Ρ… сфСр Π΄Π΅ΡΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ.

Π‘ΠΎΠ»ΡŒΡˆΠΈΠ΅ сайты Π½Π° AngularJS

The Guardian

Π‘Π°ΠΉΡ‚ британской Π³Π°Π·Π΅Ρ‚Ρ‹ сущСствуСт ΡƒΠΆΠ΅ ΡˆΠ΅ΡΡ‚ΡŒ Π»Π΅Ρ‚ ΠΈ ΠΏΠΎ ΡΠΎΡΡ‚ΠΎΡΠ½ΠΈΡŽ Π½Π° ΡΠ΅Π½Ρ‚ΡΠ±Ρ€ΡŒ 2015 Π³ΠΎΠ΄Π° Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ Ρ‚Ρ€Π΅Ρ‚ΡŒΠ΅ мСсто ΠΏΠΎ посСщаСмости срСди Π½Π°Ρ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Ρ… новостных ΠΈΠ·Π΄Π°Π½ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ доступны ΠΎΠ½Π»Π°ΠΉΠ½. ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ интСрфСйс Π²Π΅Π±-сайта прСдставляСт собой AngularJS ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, написанноС Π² соотвСтствии с ES 2015, послСдним стандартом JavaScript:

Π§Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π±Π΅ΡΠΊΠΎΠ½Π΅Ρ‡Π½ΡƒΡŽ ΠΏΡ€ΠΎΠΊΡ€ΡƒΡ‚ΠΊΡƒ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ² поиска, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ The Guardian использовали возмоТности Angular вмСстС с Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡΠΌΠΈ RxJS для Ρ€Π΅Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠ³ΠΎ программирования, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΎ Π½Π° Ρ€Π°Π±ΠΎΡ‚Ρƒ с измСнСниями.

Π’Π°ΠΊΠΆΠ΅ AngularJS ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π² Grid, систСмС управлСния изобраТСниями издания. Π’ Π½Π΅ΠΉ хранится Π±ΠΎΠ»Π΅Π΅ 3 ΠΌΠΈΠ»Π»ΠΈΠΎΠ½ΠΎΠ² ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ ΠΈ ΠΎΠΊΠΎΠ»ΠΎ 20 тысяч добавляСтся Π΅ΠΆΠ΅Π΄Π½Π΅Π²Π½ΠΎ. Как ΠΈ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‰ΠΈΠ΅ Ρ€Π°Π·Π²ΠΈΡ‚ΠΈΠ΅ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹Ρ… ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ² с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ, ΠΈΠ·Π΄Π°Π½ΠΈΠ΅ The Guardian сдСлало систСму Grid доступной Π½Π° Github:


Π§Ρ‚ΠΎ касаСтся ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π° Π½Π° AngularJS 2.0 (Π΄Π°Ρ‚Π° Ρ€Π΅Π»ΠΈΠ·Π° Π±Π΅Ρ‚Π°-вСрсии: 15 дСкабря 2015 Π³ΠΎΠ΄Π°), Ρ‚ΠΎ, Π½Π΅ смотря Π½Π° Π΅Π³ΠΎ слоТности, senior-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ издания The Guardian ΠΎΡ‚ΠΌΠ΅Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ новая вСрсия Angular соотвСтствуСт Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΌ тСндСнциям развития ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚-Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ.


PayPal

Компания PayPal прСдоставляСт услуги элСктронных ΠΏΠ»Π°Ρ‚Π΅ΠΆΠ΅ΠΉ Π² 203 странах ΠΈ Ρ€Π΅Π³ΠΈΠΎΠ½Π°Ρ… ΠΈ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ с 26 Π²Π°Π»ΡŽΡ‚Π°ΠΌΠΈ. AngularJS Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ использовали Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ Π² систСмС оформлСния ΠΈ ΠΎΠΏΠ»Π°Ρ‚Ρ‹ Π·Π°ΠΊΠ°Π·Π° (PayPal Checkout), которая состоит ΠΈΠ·:

  1. Π ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΎΠΉ страницы
  2. Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Ρ‹ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ ΠΏΠ»Π°Ρ‚Π΅ΠΆΠ°
  3. Π‘Π°ΠΉΠ΄Π±Π°Ρ€Π°
  4. Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Ρ‹ добавлСния Π½ΠΎΠ²ΠΎΠΉ ΠΊΡ€Π΅Π΄ΠΈΡ‚Π½ΠΎΠΉ ΠΊΠ°Ρ€Ρ‚Ρ‹

Weather.com

АмСриканский ΠΊΠ°Π±Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΈ спутниковый ΠΊΠ°Π½Π°Π» The Weather Channel обзавСлся собствСнным Π²Π΅Π±-сайтом Π΅Ρ‰Π΅ Π² Π΄Π°Π»Π΅ΠΊΠΎΠΌ 1996 Π³ΠΎΠ΄Ρƒ. БСгодня, согласно Π΄Π°Π½Π½Ρ‹ΠΌ SimilarWeb, weather.com β€” самый посСщаСмый ΠΏΠΎΠ³ΠΎΠ΄Π½Ρ‹ΠΉ сайт Π² ΠΌΠΈΡ€Π΅.

Π’ 2014 Π³ΠΎΠ΄Ρƒ сайт ΠΊΠ°Π½Π°Π»Π° ΠΌΠΈΠ³Ρ€ΠΈΡ€ΠΎΠ²Π°Π» Π½Π° Drupal, систСму управлСния сайтом, которая ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ Symfony2. На weather.com ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ большоС количСство Π²ΠΈΠ΄ΠΆΠ΅Ρ‚ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½ΡƒΠΆΠ½ΠΎ Π·Π°Π³Ρ€ΡƒΠΆΠ°Ρ‚ΡŒ ΠΊΠ°ΠΊ для Π½Π°ΡΡ‚ΠΎΠ»ΡŒΠ½ΠΎΠΉ, Ρ‚Π°ΠΊ ΠΈ для мобильной вСрсии сайта. ΠŸΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Ρ… для Π²ΠΈΠ΄ΠΆΠ΅Ρ‚ΠΎΠ² Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ΠΎ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ AngularJS, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ располоТСны Π² ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠΉ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ.

YouTube для PS3

Youtube β€” видСохостинг, ΠΏΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ°Ρ‰ΠΈΠΉ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ Google, ΡΡ‚ΠΎΠΈΠΌΠΎΡΡ‚ΡŒ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΎΡ†Π΅Π½ΠΈΠ²Π°ΡŽΡ‚ Π² 70 ΠΌΠΈΠ»Π»ΠΈΠ°Ρ€Π΄ΠΎΠ² Π΄ΠΎΠ»Π»Π°Ρ€ΠΎΠ² БША. Π£ сСрвиса ΠΎΠ΄ΠΈΠ½ ΠΌΠΈΠ»Π»ΠΈΠ°Ρ€Π΄ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ, Ρ‡Ρ‚ΠΎ составляСт Ρ‚Ρ€Π΅Ρ‚ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚Π° Π² ΠΌΠΈΡ€Π΅. YouTube доступСн Π½Π° большом количСствС устройств, Π² Ρ‚ΠΎΠΌ числС Π½Π° консолях ΠΎΡ‚ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ Sony. ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ для PS3 написано с использованиСм JS-Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠ° AngularJS:

VEVO

На сайтС ΠΌΡƒΠ·Ρ‹ΠΊΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ сСрвиса собрано 150 тысяч Π²ΠΈΠ΄Π΅ΠΎΠΊΠ»ΠΈΠΏΠΎΠ², Ρ€Π°ΡΠΏΡ€ΠΎΡΡ‚Ρ€Π°Π½ΡΡŽΡ‰ΠΈΡ…ΡΡ с согласия ΠΏΡ€Π°Π²ΠΎΠΎΠ±Π»Π°Π΄Π°Ρ‚Π΅Π»Π΅ΠΉ. VEVO ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ 12 ΠΌΠΈΠ»Π»ΠΈΠ°Ρ€Π΄ΠΎΠ² просмотров СТСмСсячно. ΠŸΡ€ΠΈ этом для создания Ρ„Ρ€ΠΎΠ½Ρ‚-энда сайта использовался JavaScript-Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ AngularJS:


Lego.com

К запуску ΠΌΠΈΠ½ΠΈ-сСрии Rebels, посвящСнной ΠΌΠΈΡ€Ρƒ Β«Π—Π²Π΅Π·Π΄Π½Ρ‹Ρ… Π²ΠΎΠΉΠ½Β», датская компания Lego, основанная Π΅Ρ‰Π΅ Π² 1932 Π³ΠΎΠ΄Ρƒ, Π·Π°ΠΊΠ°Π·Π°Π»Π° созданиС ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠ³ΠΎ конструктора постСров:

Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ использовали Ρ‚Π΅Ρ…Π½ΠΈΠΊΡƒ ΠΏΠ°Ρ€Π½ΠΎΠ³ΠΎ программирования, ΠΏΡ€ΠΈ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π΄Π²ΠΎΠ΅ людСй (Β«Π²Π΅Π΄ΡƒΡ‰ΠΈΠΉΒ» ΠΈ Β«ΡˆΡ‚ΡƒΡ€ΠΌΠ°Π½Β») ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ ΠΎΠ΄Π½ΠΎ Ρ€Π°Π±ΠΎΡ‡Π΅Π΅ мСсто. Β«Π’Π΅Π΄ΡƒΡ‰ΠΈΠΉΒ» Ρ€Π΅ΡˆΠ°Π΅Ρ‚ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ Π² дСталях, Π° Β«ΡˆΡ‚ΡƒΡ€ΠΌΠ°Π½Β» слСдит Π·Π° процСссом написания ΠΊΠΎΠ΄Π° ΠΈ сосрСдоточСн Π½Π°Π΄ ΠΎΠ±Ρ‰Π΅ΠΉ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΎΠΉ. Π§Π΅Ρ€Π΅Π· Ρ€Π°Π²Π½Ρ‹Π΅ ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΊΠΈ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΎΠ½ΠΈ ΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ ролями. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ AngularJS, сборщик JS-ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ² Browserify ΠΈ ΠΏΠ»Π°Π³ΠΈΠ½ LESS ΠΈΠΌ ΡƒΠ΄Π°Π»ΠΎcь ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ быстроС ΠΈ лСгковСсноС Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ для продвиТСния Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚Π° ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ.

Upwork ΠΈ Freelancer

ОбС фриланс-Π±ΠΈΡ€ΠΆΠΈ достаточно популярны:

  1. ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ фрилансСров: 10 ΠΌΠΈΠ»Π»ΠΈΠΎΠ½ΠΎΠ² для Upwork ΠΈ 18 ΠΌΠΈΠ»Π»ΠΈΠΎΠ½ΠΎΠ² для Freelancer.
  2. Π‘Ρ€Π΅Π΄Π½Π΅Π΅ количСство доступных ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ²: 3,6 ΠΌΠΈΠ»Π»ΠΈΠΎΠ½Π° для Upwork ΠΈ 4,4 для Freelancer.

ΠŸΡ€ΠΈ этом ΠΈ Upwork, ΠΈ Freelancer ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ AngularJS:

jetBlue

ΠŸΠΎΠΏΡƒΠ»ΡΡ€Π½Π°Ρ амСриканская лоукост авиакомпания, самолСтами ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π΅ΠΆΠ΅Π³ΠΎΠ΄Π½ΠΎ Π»Π΅Ρ‚Π°Π΅Ρ‚ 35 ΠΌΠΈΠ»Π»ΠΈΠΎΠ½ΠΎΠ² людСй. jetBlue ΡΠΎΠ²Π΅Ρ€ΡˆΠ°Π΅Ρ‚ ΠΎΠΊΠΎΠ»ΠΎ 900 ΠΏΠ΅Ρ€Π΅Π»Π΅Ρ‚ΠΎΠ² Π΅ΠΆΠ΅Π΄Π½Π΅Π²Π½ΠΎ ΠΈ доставляСт пассаТиров Π² 95 Π³ΠΎΡ€ΠΎΠ΄ΠΎΠ² БША, стран ΠšΠ°Ρ€ΠΈΠ±ΡΠΊΠΎΠ³ΠΎ бассСйна ΠΈ Латинской АмСрики. На Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ вСрсии сайта jetBlue ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ AngularJS:

iStock Photo

ΠœΠΈΠΊΡ€ΠΎΡΡ‚ΠΎΠΊ с royalty-free фотографиями, ΠΈΠ»Π»ΡŽΡΡ‚Ρ€Π°Ρ†ΠΈΡΠΌΠΈ, Π°ΡƒΠ΄ΠΈΠΎ ΠΈ Π²ΠΈΠ΄Π΅ΠΎ ΠΏΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠΈΡ‚ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ Getty Images. AngularJS ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π½Π° Π³Π»Π°Π²Π½ΠΎΠΉ страницС сСрвиса:

Localytics

БСрвис бизнСс-Π°Π½Π°Π»ΠΈΡ‚ΠΈΠΊΠΈ для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² ΠΈ Π²Π»Π°Π΄Π΅Π»ΡŒΡ†Π΅Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ ΠΏΠ»Π°Π½ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠ°Ρ€ΠΊΠ΅Ρ‚ΠΈΠ½Π³ΠΎΠ²Ρ‹Π΅ ΠΊΠ°ΠΌΠΏΠ°Π½ΠΈΠΈ. Π•Π³ΠΎ услугами ΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ 6000 ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΉ, Π² Ρ‚ΠΎΠΌ числС Microsoft, The New York Times, Zipcar, HBO ΠΈ The Weather Channel, ΠΎ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΌΡ‹ писали Π²Ρ‹ΡˆΠ΅.

Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ Ρ…ΠΎΡ‚Π΅Π»ΠΈ пСрСнСсти сСрвис Π½Π° JS Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ большС возмоТностСй Β«ΠΈΠ· ΠΊΠΎΡ€ΠΎΠ±ΠΊΠΈΒ». Им ΠΏΡ€ΠΈΡˆΠ΅Π»ΡΡ ΠΏΠΎ Π΄ΡƒΡˆΠ΅ Π½Π°Π±ΠΎΡ€ ΠΏΠ»Π°Π³ΠΈΠ½ΠΎΠ² (suite) AngularJS UI ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ Ρ€Π΅ΡˆΠ°Ρ‚ΡŒ распространСнныС ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹, связанныС с ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΌ интСрфСйсом. ΠŸΡ€ΠΈ этом использованиС AngularJS ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΠ»ΠΎ ΡΠΎΠΊΡ€Π°Ρ‚ΠΈΡ‚ΡŒ количСство строчСк ΠΊΠΎΠ΄Π° ΠΏΠΎ ΡΡ€Π°Π²Π½Π΅Π½ΠΈΡŽ с ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΠΌ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΎΠΌ:

Π’ΠΎΠΏ-сайты Π½Π° AngularJS, ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½Ρ‹Π΅ Π²Ρ‹ΡˆΠ΅, ΡΠ²ΠΈΠ΄Π΅Ρ‚Π΅Π»ΡŒΡΡ‚Π²ΡƒΡŽΡ‚ ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ этот JS Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ для создания Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ Π² Ρ€Π°Π·Π½Ρ‹Ρ… сфСрах, ΠΎΡ‚ видСохостингов ΠΈ Ρ€Π°Π·Π²Π»Π΅ΠΊΠ°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΏΠΎΡ€Ρ‚Π°Π»ΠΎΠ² Π΄ΠΎ сСрвисов бизнСс-Π°Π½Π°Π»ΠΈΡ‚ΠΈΠΊΠΈ ΠΈ сайтов транспортных ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΉ.

Π₯ΠΎΡ‚ΠΈΡ‚Π΅ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ одностраничноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ AngularJS ΠΈΠ»ΠΈ большой Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹ΠΉ сайт? ΠœΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ Π² Ρ€Π°Π±ΠΎΡ‚Π΅ Symfony2, AngularJS ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ соврСмСнныС Π²Π΅Π±-Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ, ΠΈ с Ρ€Π°Π΄ΠΎΡΡ‚ΡŒΡŽ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π΅ΠΌ ΠΏΡ€ΠΎΠ΄Π°ΡŽΡ‰ΠΈΠΉ сайт для вашСго бизнСса.

ΠΏΡ€ΠΈΠΌΠ΅Ρ€ использования NGRX / Π₯Π°Π±Ρ€

Π­Ρ‚Π° ΡΡ‚Π°Ρ‚ΡŒΡ являСтся ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ΅Π½ΠΈΠ΅ΠΌ поста Β«Angular: понятноС Π²Π²Π΅Π΄Π΅Π½ΠΈΠ΅ Π² NGRXΒ»

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ NGRX

Π’ нашСм ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ Π±ΡƒΠ΄Π΅Ρ‚ список ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ, страница свСдСний ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ ΠΈ нСкоторая Π½Π°Ρ‡Π°Π»ΡŒΠ½Π°Ρ информация ΠΎ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π²Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΏΡ€ΠΈ запускС прилоТСния. ΠœΡ‹ собираСмся Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Π°ΠΆΠ½Ρ‹Π΅ ΠΏΠΎΡ‚ΠΎΠΊΠΈ NGRX.

План дСйствий:

  1. Установка Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ
  2. Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ структуры ΠΏΠ°ΠΏΠΎΠΊ для Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π°
  3. Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π° ΠΈ Π½Π°Ρ‡Π°Π»ΡŒΠ½Ρ‹Ρ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ
  4. Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ дСйствий (Actions)
  5. Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Ρ€Π΅Π΄ΡƒΠΊΡ‚ΠΎΡ€ΠΎΠ² (Reducers)
  6. Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ эффСктов (Effects)
  7. Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ сСлСкторов (Selectors)
  8. ΠšΠΎΠ½Π΅Ρ‡Π½Π°Ρ настройка
  9. ИспользованиС Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π° Π² ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°Ρ…

Π˜Ρ‚Π°ΠΊ, Π΄Π°Π²Π°ΠΉΡ‚Π΅ сдСлаСм это…

Установка Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ

ΠœΡ‹ собираСмся ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Angle Cli для создания ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°, Π° Π·Π°Ρ‚Π΅ΠΌ ΠΌΡ‹ Π΄ΠΎΠ±Π°Π²ΠΈΠΌ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ ngrx.

Π‘ΠΎΠ·Π΄Π°Π΄ΠΈΠΌ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚:

ng new angular-ngrx --style=scss

Π”ΠΎΠ±Π°Π²ΠΈΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ NGRX:

npm install @ngrx/core @ngrx/store @ngrx/effects @ngrx/store-devtools @ngrx/router-store --save

ΠœΡ‹ устанавливаСм ΠΏΠΎΡ‡Ρ‚ΠΈ всС Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ экосистСмы ngrx. Π‘ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ ΠΈΠ· Π½ΠΈΡ… достаточно ясно ΠΎΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‚ ΠΈΡ… Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅: ядро, Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅, эффСкты, Π½ΠΎ Π΅ΡΡ‚ΡŒ ΠΏΠ°Ρ€Π°, для ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π·Π°Π΄Π°Ρ‚ΡŒΡΡ вопросом, для Ρ‡Π΅Π³ΠΎ ΠΎΠ½ΠΈ Π½ΡƒΠΆΠ½Ρ‹?

  • store-devtools β€” ΠœΠΎΡ‰Π½Ρ‹ΠΉ инструмСнт для ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ.
  • router-store β€” БохраняСт состояниС Ρ€ΠΎΡƒΡ‚Π΅Ρ€Π° angular Π² Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅.

Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° ΠΏΠ°ΠΏΠΎΠΊ для Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π°

НачнСм с обсуТдСния Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ структуры Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π°. Π­Ρ‚Π° файловая структура ΠΈ вся конфигурация Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π° Π΄ΠΎΠ»ΠΆΠ½Π° ΡΡƒΡ‰Π΅ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ Π² основном ΠΌΠΎΠ΄ΡƒΠ»Π΅ вашСго прилоТСния, Π½ΠΎ Π² нашСм ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΎΠ½Π° отсутствуСт, поэтому Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ Π² основном ΠΌΠΎΠ΄ΡƒΠ»Π΅ нашСго прилоТСния (шаги практичСски ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹Π΅, Ссли Π²Ρ‹ Π΄Π΅Π»Π°Π΅Ρ‚Π΅ это Π² основном ΠΌΠΎΠ΄ΡƒΠ»Π΅).

Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° ΠΏΠ°ΠΏΠΎΠΊ являСтся прСдставлСниСм фактичСской ΠΊΠΎΠΌΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π°. Π£ вас Π±ΡƒΠ΄Π΅Ρ‚ основная ΠΏΠ°ΠΏΠΊΠ° с Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ Β«storeΒ» ΠΈ ΠΏΡΡ‚ΡŒ ΠΏΠΎΠ΄ΠΏΠ°ΠΏΠΎΠΊ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‚ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΈΠ· ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Ρ… ΠΈΠ³Ρ€ΠΎΠΊΠΎΠ² ΠΌΠ°Π³Π°Π·ΠΈΠ½Π°: Β«ActionsΒ», Β«EffectsΒ», Β«RedursΒ», Β«SelectorsΒ» ΠΈ Β«StateΒ».

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π° ΠΈ Π½Π°Ρ‡Π°Π»ΡŒΠ½Ρ‹Ρ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ

Как ΠΌΡ‹ ΡƒΠΆΠ΅ ΡƒΠΏΠΎΠΌΠΈΠ½Π°Π»ΠΈ Ρ€Π°Π½Π΅Π΅, Ρƒ нас Π±ΡƒΠ΄Π΅Ρ‚ Π΄Π²Π° основных Ρ€Π°Π·Π΄Π΅Π»Π°: нашС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ ΠΈ конфигурация. Для Π½ΠΈΡ… ΠΎΠ±ΠΎΠΈΡ… Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ состояниС ΠΈ Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠ΅ состояниС, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Ρ‚ΠΎ ΠΆΠ΅ самоС для состояния прилоТСния.

ΠœΡ‹ создали Π΄Π²Π° интСрфСйса для опрСдСлСния ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ ΠΈ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ. Π£ нас Ρ‚Π°ΠΊΠΆΠ΅ Π΅ΡΡ‚ΡŒ ΠΎΠ΄ΠΈΠ½ для ΠΎΡ‚Π²Π΅Ρ‚Π° HTTP ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ, это просто массив IUser.

НачнСм с состояния ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ (store/state/user.state.ts):

Π§Ρ‚ΠΎ ΠΌΡ‹ здСсь Π΄Π΅Π»Π°Π΅ΠΌ:

  1. ΠœΡ‹ создаСм ΠΈ экспортируСм интСрфСйс со структурой ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠΉ срСды.
  2. ΠœΡ‹ Π΄Π΅Π»Π°Π΅ΠΌ Ρ‚ΠΎ ΠΆΠ΅ самоС с Π½Π°Ρ‡Π°Π»ΡŒΠ½Ρ‹ΠΌ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΌ состояниСм, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΠ΅Ρ‚ Π½Π΅Π΄Π°Π²Π½ΠΎ созданный интСрфСйс.

Для состояния ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ ΠΌΡ‹ Π΄Π΅Π»Π°Π΅ΠΌ Ρ‚ΠΎ ΠΆΠ΅ самоС (store/states/config.state.ts):

НаконСц, Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΡΠ³Π΅Π½Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ состояниС прилоТСния (store/states/app.state.ts):

  1. БостояниС прилоТСния содСрТит состояниС ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ ΠΈ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ, Π° Ρ‚Π°ΠΊΠΆΠ΅ состояниС ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΈΠ·Π°Ρ‚ΠΎΡ€Π°.
  2. ΠŸΠΎΡ‚ΠΎΠΌ Π·Π°Π΄Π°Π΅ΠΌ Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠ΅ состояниС прилоТСния.
  3. НаконСц, экспортируСт Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠ΅ состояниС (ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ ΠΏΠΎΠ·ΠΆΠ΅).

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ДСйствий

ΠžΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°ΠΉΡ‚Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ дСйствия, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΌΡ‹ обсуТдали Π² ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΉ ΡΡ‚Π°Ρ‚ΡŒΠ΅.

Нам Π½ΡƒΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ дСйствия для ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ ΠΈ настройки. НачнСм с дСйствий ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ (store / actions / user.actions.ts):

Π”Π°Π²Π°ΠΉΡ‚Π΅ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ пройдСмся ΠΏΠΎ ΠΊΠΎΠ΄Ρƒ:

  1. ΠœΡ‹ экспортируСм Enum, содСрТащий ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ для Ρ‚ΠΈΠΏΠΎΠ² дСйствий. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, ΠΌΡ‹ ΠΈΠ·Π±Π΅Π³Π°Π΅ΠΌ использования ΠΈ повторСния строк для использования Ρ‚ΠΈΠΏΠΎΠ² дСйствий, процСсс, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ Π»Π΅Π³ΠΊΠΎ ΠΏΠΎΡ€ΠΎΠΆΠ΄Π°Ρ‚ΡŒΡΡ ошибками.
  2. ΠŸΠΎΡ‚ΠΎΠΌ ΠΌΡ‹ создаСм ΠΈ экспортируСм класс для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΈΠ· Π²Π°ΡˆΠΈΡ… дСйствий. ВсС ΠΎΠ½ΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ интСрфСйс Action ΠΈΠ· ngrx. НаконСц, ΠΌΡ‹ устанавливаСм Ρ‚ΠΈΠΏ Π² ΠΎΠ΄Π½ΠΎ ΠΈΠ· Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ пСрСчислСний, ΠΈ Ссли Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠ΅ содСрТимоС для дСйствия, Π²Ρ‹ добавляСтС Π΅Π³ΠΎ Π² конструктор класса.
  3. НаконСц, ΠΌΡ‹ экспортируСм Ρ‚ΠΈΠΏ, содСрТащий наши классы дСйствий. Π­Ρ‚ΠΎ обСспСчит Π½Π°ΠΌ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΡƒ Ρ‚ΠΈΠΏΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π² Π½Π°ΡˆΠΈΡ… Ρ€Π΅Π΄ΡƒΠΊΡ‚ΠΎΡ€Π°Ρ….

И это всС… ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ дСйствия просто. Π”Π°Π²Π°ΠΉΡ‚Π΅ посмотрим, ΠΊΠ°ΠΊ выглядят дСйствия ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ (store/actions/config.actions.ts):

НичСго Π½ΠΎΠ²ΠΎΠ³ΠΎ здСсь, Π²Ρ‹, вСроятно, Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ чувствуСтС сСбя ΠΊΠΎΠΌΡ„ΠΎΡ€Ρ‚Π½ΠΎ со всСм, Ρ‡Ρ‚ΠΎ происходит Π² этом Ρ„Π°ΠΉΠ»Π΅.

ΠžΡ‚Π»ΠΈΡ‡Π½ΠΎ, ΠΌΡ‹ ΡƒΠΆΠ΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΠ»ΠΈ состояниС ΠΈ дСйствия… Π΄Π°Π²Π°ΠΉΡ‚Π΅ создадим Ρ€Π΅Π΄ΡƒΠΊΡ‚ΠΎΡ€Ρ‹!

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π Π΅Π΄ΡƒΠΊΡ‚ΠΎΡ€ΠΎΠ²

ΠžΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΠΏΡ€ΠΎΡ‡Ρ‚ΠΈΡ‚Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Ρ€Π΅Π΄ΡƒΠΊΡ‚ΠΎΡ€ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΌΡ‹ обсуТдали Π² ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΉ ΡΡ‚Π°Ρ‚ΡŒΠ΅.

Π£ нас Π±ΡƒΠ΄ΡƒΡ‚ Ρ€Π΅Π΄ΡƒΠΊΡ‚ΠΎΡ€Ρ‹, Ρ€Π΅Π°Π³ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠ΅ Π½Π° Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ дСйствия, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Π±ΡƒΠ΄ΡƒΡ‚ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒΡΡ эффСктами, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΡ‹ собираСмся Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎΠ·ΠΆΠ΅.

Нам понадобится Ρ€Π΅Π΄ΡƒΠΊΡ‚ΠΎΡ€ для ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ ΠΈ Π΄Ρ€ΡƒΠ³ΠΎΠΉ для ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ, Π½ΠΎ Π½Π°ΠΌ Ρ‚Π°ΠΊΠΆΠ΅ понадобится Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ€Π΅Π΄ΡƒΠΊΡ‚ΠΎΡ€Ρ‹ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, Π΄Π°Π²Π°ΠΉΡ‚Π΅ Π½Π°Ρ‡Π½Π΅ΠΌ с рассмотрСния Ρ€Π΅Π΄ΡƒΠΊΡ‚ΠΎΡ€ΠΎΠ² ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ (store/redurs/user.reducers.ts):

Π”Π°Π²Π°ΠΉΡ‚Π΅ обсудим Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ:

  1. ОбъявлСниС Ρ€Π΅Π΄ΡƒΠΊΡ‚ΠΎΡ€Π° ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ состояниС ΠΈ, Π² этом случаС, дСйствия ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ IUserState.
  2. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ switch, ΠΌΡ‹ Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΠ΅ΠΌ наблюдСния для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ° дСйствия.
  3. ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ случай Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π½ΠΎΠ²Ρ‹ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ являСтся Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠΌ слияния старого состояния ΠΈ Π½ΠΎΠ²ΠΎΠ³ΠΎ значСния.
  4. ВсС Ρ€Π΅Π΄ΡƒΠΊΡ‚ΠΎΡ€Ρ‹ ΠΈΠΌΠ΅ΡŽΡ‚ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ просто Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ состояниС Π±Π΅Π· ΠΊΠ°ΠΊΠΈΡ…-Π»ΠΈΠ±ΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ.

И это всС. Π’Ρ‹ Π½Π΅ Π½Π°ΠΉΠ΄Π΅Ρ‚Π΅ Π½ΠΈΡ‡Π΅Π³ΠΎ Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ Π² Ρ€Π΅Π΄ΡƒΠΊΡ‚ΠΎΡ€Π΅. Π”Π°Π²Π°ΠΉΡ‚Π΅ взглянСм Π½Π° Ρ€Π΅Π΄ΡƒΠΊΡ‚ΠΎΡ€Ρ‹ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ (state/redurs/config.reducers.ts):

НаконСц, Π΄Π°Π²Π°ΠΉΡ‚Π΅ посмотрим Π½Π° Ρ€Π΅Π΄ΡƒΠΊΡ‚ΠΎΡ€Ρ‹ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ (store):

Π—Π΄Π΅ΡΡŒ ΠΌΡ‹ добавляСм всС Ρ€Π΅Π΄ΡƒΠΊΡ‚ΠΎΡ€Ρ‹ Π½Π° ΠΊΠ°Ρ€Ρ‚Ρƒ Ρ€Π΅Π΄ΡƒΠΊΡ‚ΠΎΡ€ΠΎΠ² дСйствий прилоТСния. ΠœΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ ΠΊΠ°Ρ€Ρ‚Ρƒ Ρ€Π΅Π΄ΡƒΠΊΡ‚ΠΎΡ€Π° дСйствий для Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ Ρ‚ΠΈΠΏΠΎΠ². ПозТС ΠΌΡ‹ собираСмся ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ это ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Ρ€Π΅Π΄ΡƒΠΊΡ‚ΠΎΡ€Ρ‹ для модуля store.

Π”ΠΎΠ±Π°Π²ΠΈΠΌ Π­Ρ„Ρ„Π΅ΠΊΡ‚Ρ‹

ΠžΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΠΏΡ€ΠΎΡ‡Ρ‚ΠΈΡ‚Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Β«Π­Ρ„Ρ„Π΅ΠΊΡ‚Ρ‹Β», ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΌΡ‹ обсуТдали Π² ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΉ ΡΡ‚Π°Ρ‚ΡŒΠ΅.

Π’Ρ‹, Π½Π°Π²Π΅Ρ€Π½ΠΎΠ΅, ΡƒΠΆΠ΅ Π·Π°ΠΌΠ΅Ρ‚ΠΈΠ»ΠΈ, Ρ‡Ρ‚ΠΎ Π² Ρ€Π΅Π΄ΡƒΠΊΡ‚ΠΎΡ€Π°Ρ… ΠΌΡ‹ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅ΠΌ Π½Π΅ всС дСйствия. Π­Ρ‚ΠΎ ΠΏΠΎΡ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ собираСмся ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠΏΡƒΡ‰Π΅Π½Π½Ρ‹Π΅ дСйствия Π² эффСктах, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ эти дСйствия ΠΈΠΌΠ΅ΡŽΡ‚ ΠΏΠΎΠ±ΠΎΡ‡Π½Ρ‹Π΅ эффСкты.

НачнСм с ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΡ… эффСктов (store/effects/user.effects.ts):

Много Ρ‡Ρ‚ΠΎ происходит Π² этом Ρ„Π°ΠΉΠ»Π΅. Π”Π°Π²Π°ΠΉΡ‚Π΅ ΠΏΠΎΠΏΡ€ΠΎΠ±ΡƒΠ΅ΠΌ ΠΎΠ±ΡŠΡΡΠ½ΠΈΡ‚ΡŒ ΠΈΡ…:

  1. ΠœΡ‹ объявляСм наши ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠ΅ эффСкты с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΈΠ½ΡŠΠ΅ΠΊΡ†ΠΈΠΎΠ½Π½ΠΎΠ³ΠΎ Π΄Π΅ΠΊΠΎΡ€Π°Ρ‚ΠΎΡ€Π°.
  2. ΠœΡ‹ объявляСм наши эффСкты, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Π΄Π΅ΠΊΠΎΡ€Π°Ρ‚ΠΎΡ€ эффСктов, прСдоставлСнный ngrx/Effects.
  3. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ дСйствия, прСдоставлСнныС ngrx / Effects, ΠΌΡ‹ собираСмся Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅Ρ€ нашСго ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° для этого эффСкта.
  4. Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ шагом являСтся установка Ρ‚ΠΈΠΏΠ° дСйствия эффСкта с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° ofType.
  5. Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ части ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‚ собой ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ rxjs, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ для получСния Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ (Ρƒ нас ΡƒΠΆΠ΅ Π΅ΡΡ‚ΡŒ ссылка Π½Π° Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡŽ ΠΏΠΎ rxjs Π² этой ΡΡ‚Π°Ρ‚ΡŒΠ΅).
  6. НаконСц, Π² послСднСм ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π΅ Effect ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚ Π΅Ρ‰Π΅ ΠΎΠ΄Π½ΠΎ дСйствиС.
  7. Π’ конструкторС ΠΌΡ‹ внСдряСм сСрвисы, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΡ‹ собираСмся ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ, дСйствия для ngrx / Effects, ΠΈ Π² этом случаС Ρ‚Π°ΠΊΠΆΠ΅ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ (ΡƒΡ‡Ρ‚ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎ это Π΄Π΅ΠΌΠΎ, ΠΈ ΠΌΡ‹ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ Π²Ρ‹Π±Ρ€Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ ΠΈΠ· списка ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ Π² нашС Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅).

Π­Ρ‚ΠΎ ΠΏΠΎΡ‡Ρ‚ΠΈ Ρ‚Π° ΠΆΠ΅ структура, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π²Ρ‹ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚Π΅ ΠΏΡ€ΠΈ любом эффСктС. Π’ этом случаС ΠΌΡ‹ отправляСм Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎΠ΅ дСйствиС, Π½ΠΎ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΎΡ‚ΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ ошибки ΠΈΠ»ΠΈ любоС Π΄Ρ€ΡƒΠ³ΠΎΠ΅ состояниС, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π² Π½Π°ΡˆΠΈΡ… Ρ€Π΅Π΄ΡƒΠΊΡ‚ΠΎΡ€Π°Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ.

Рассмотрим эффСкты ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ (store/effects/config.effects.ts):

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΏΡ€ΠΈΡˆΠ»ΠΎ врСмя ΠΏΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ΡŒ ΠΎ сСлСкторах…

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π‘Π΅Π»Π΅ΠΊΡ‚ΠΎΡ€ΠΎΠ²

ΠžΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°ΠΉΡ‚Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π‘Π΅Π»Π΅ΠΊΡ‚ΠΎΡ€ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΌΡ‹ обсуТдали Π² ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΉ ΡΡ‚Π°Ρ‚ΡŒΠ΅.

НСт смысла ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΡΡ‚ΡŒ Π²Ρ‹Π±ΠΎΡ€ΠΊΠΈ срСзов нашСго состояния повсСмСстно, поэтому Π΄Π°Π²Π°ΠΉΡ‚Π΅ создадим Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ сСлСкторы, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ.

Как всСгда, Π΄Π°Π²Π°ΠΉΡ‚Π΅ сначала посмотрим Π½Π° ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠ΅ сСлСкторы (store/selectors/user.selectors.ts):

Π­Ρ‚ΠΎ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ понятно, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΌΡ‹ Π½Π΅ Π΄Π΅Π»Π°Π΅ΠΌ Π½ΠΈΠΊΠ°ΠΊΠΈΡ… трансформаций Π΄Π°Π½Π½Ρ‹Ρ… Π² Π½Π°ΡˆΠΈΡ… сСлСкторах, Π° просто Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌ срСз Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π°, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ссылаСтся сСлСктор, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ createSelector ΠΈΠ· ngrx/store.

ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ β€” это Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π°, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ для получСния Π΄Π°Π½Π½Ρ‹Ρ… (это ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ массив с нСсколькими частями состояния), Π²Ρ‚ΠΎΡ€ΠΎΠΉ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ β€” анонимная функция, которая Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π΅ΡˆΠ°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Ρ‚ΡŒ сСлСктор.

Π”Π°Π²Π°ΠΉΡ‚Π΅ посмотрим Π½Π° ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Π΅ сСлСкторы (store/selectors/config.selectors.ts):

Π˜Ρ‚ΠΎΠ³ΠΎΠ²Π°Ρ настройка

ΠžΡ‚Π»ΠΈΡ‡Π½ΠΎ, ΠΌΡ‹ создали всС, Ρ‡Ρ‚ΠΎ Π½ΡƒΠΆΠ½ΠΎ Π½Π°ΡˆΠ΅ΠΌΡƒ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Ρƒ, Π½ΠΎ Π½Π°ΠΌ ΠΏΠΎΠΊΠ° Π½Π΅ Ρ…Π²Π°Ρ‚Π°Π΅Ρ‚ ΠΎΠ΄Π½ΠΎΠΉ Π²Π΅Ρ‰ΠΈ β€” ΡΠΎΠ±Ρ€Π°Ρ‚ΡŒ всС Π²ΠΎΠ΅Π΄ΠΈΠ½ΠΎ. Π― ΡΠΎΠ±ΠΈΡ€Π°ΡŽΡΡŒ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ это Π² ΠΌΠΎΠ΄ΡƒΠ»Π΅ прилоТСния, Π½ΠΎ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ Ρ‚ΠΎ ΠΆΠ΅ самоС Π² основном ΠΌΠΎΠ΄ΡƒΠ»Π΅ вашСго прилоТСния.

Π”Π°Π²Π°ΠΉΡ‚Π΅ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΠΌ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ прилоТСния:

Π§Ρ‚ΠΎ ΠΌΡ‹ здСсь сдСлали:

  1. ΠœΡ‹ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌ наши Ρ€Π΅Π΄ΡƒΠΊΡ‚ΠΎΡ€Ρ‹ ΠΈ прСдоставляСм ΠΈΡ… Π² forRoot модуля Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π°.
  2. ΠœΡ‹ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌ наши эффСкты ΠΈ прСдоставляСм ΠΈΡ… Π²Π½ΡƒΡ‚Ρ€ΠΈ массива Π² ΠΌΠΎΠ΄ΡƒΠ»ΡŒ forRoot эффСктов.
  3. ΠœΡ‹ устанавливаСм ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡŽ для модуля состояния ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΈΠ·Π°Ρ‚ΠΎΡ€Π°, ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰Π΅Π³ΠΎ ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΈΠ·Π°Ρ‚ΠΎΡ€ stateKey.
  4. И ΠΌΡ‹ добавляСм инструмСнты Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° ΠΌΠ°Π³Π°Π·ΠΈΠ½Π°, Ссли срСда Π½Π΅ являСтся производствСнной.

ΠŸΠ΅Ρ€Π²Ρ‹Π΅ Π΄Π²Π° шага Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹, Π² Ρ‚ΠΎ врСмя ΠΊΠ°ΠΊ шаги 3 ΠΈ 4 я Π½Π°ΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΡŽ, Π½ΠΎ ΠΎΠ½ΠΈ Π½Π΅ ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΡ‹ Π½Π°ΠΊΠΎΠ½Π΅Ρ† сдСлали… ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ нашС Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ Π² ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°Ρ…!

ИспользованиС Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π° Π² Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°Ρ…

ΠœΡ‹ приблиТаСмся ΠΊ ΠΊΠΎΠ½Ρ†Ρƒ! Π”Π°Π²Π°ΠΉΡ‚Π΅ посмотрим, ΠΊΠ°ΠΊ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ нашС хранилищС…

Π’ΠΎ-ΠΏΠ΅Ρ€Π²Ρ‹Ρ…, Π΄Π°Π²Π°ΠΉΡ‚Π΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠΌ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡŽ ΠΏΡ€ΠΈ запускС прилоТСния:

  1. ΠœΡ‹ добавляСм Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ Π² наш app.component.
  2. ΠœΡ‹ устанавливаСм для свойства ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ сСлСктора Π² ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ Ρ…ΠΎΡ‚ΠΈΠΌ ΠΎΡ‚ΠΎΠ±Ρ€Π°Π·ΠΈΡ‚ΡŒ Ρ‡Π°ΡΡ‚ΡŒ этой ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ Π² HTML.
  3. Π’ onInit ΠΌΡ‹ отправляСм дСйствиС, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡŽ.

Π’ΠΎΡ‚ ΠΈ всС… ΠœΡ‹ ΡƒΠΆΠ΅ ΠΊΠΎΠ΄ΠΈΡ€ΡƒΠ΅ΠΌ эффСкт, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±ΡƒΠ΄Π΅Ρ‚ ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ этим дСйствиСм, ΠΈ Ρ€Π΅Π΄ΡƒΠΊΡ‚ΠΎΡ€, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ этот эффСкт. Как Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π₯Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ ΠΏΠ΅Ρ€Π΅ΠΉΠ΄Π΅Ρ‚ Π² Π½ΠΎΠ²ΠΎΠ΅ состояниС, сСлСктор ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ нашСго свойства.

Как это ΡΠ²ΡΠ·Ρ‹Π²Π°Ρ‚ΡŒ с HTML:

Как Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρƒ config$ Π±ΡƒΠ΄Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, ΠΌΡ‹ ΡƒΠ²ΠΈΠ΄ΠΈΠΌ Π΅Π³ΠΎ Π² HTML.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ посмотрим список ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ (containers/users/users.component.ts):

  1. Подобно Ρ‚ΠΎΠΌΡƒ, ΠΊΠ°ΠΊ ΠΌΡ‹ управляСм ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠ΅ΠΉ, ΠΌΡ‹ собираСмся ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ список ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ. Π‘Π½Π°Ρ‡Π°Π»Π° ΠΌΡ‹ внСдряСм Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ Π² ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ.
  2. На onInit ΠΌΡ‹ отправляСм дСйствиС, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ.
  3. ΠœΡ‹ создаСм свойство для ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° ΠΈ присваиваСм Π΅ΠΌΡƒ список ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ сСлСктор списка ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ.

HTML выглядит Ρ‚Π°ΠΊ:

ΠœΡ‹ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅ΠΌ список ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ Π² ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π΅ ΠΏΡ€Π΅Π·Π΅Π½Ρ‚Π°Ρ†ΠΈΠΈ, посылая список ΠΈ связывая Π²Ρ‹Π±Ρ€Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ с Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ Π½Π°Π²ΠΈΠ³Π°Ρ†ΠΈΠΈ, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ Π² ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π° Π²Ρ‹ΡˆΠ΅.

Π”Π°Π²Π°ΠΉΡ‚Π΅ посмотрим Π½Π° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°:

Π­Ρ‚ΠΎΡ‚ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° ΠΈΠ· Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚Π°, Π° с ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹ΠΌ Π²Ρ‹, вСроятно, ΡƒΠΆΠ΅ Π·Π½Π°ΠΊΠΎΠΌΡ‹, отправляСт ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ Π² качСствС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°, Π²Ρ‹Π±ΠΈΡ€Π°Π΅Ρ‚ Π²Ρ‹Π±Ρ€Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρβ€¦

Если Π²Ρ‹ ΠΎΡ‚Π»Π°ΠΆΠΈΠ²Π°Π΅Ρ‚Π΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ инструмСнты Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ довольно просты Π² ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½ΠΈΠΈβ€¦ Π½ΠΎ Π² этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΌΡ‹ ΠΈΠ·ΡƒΡ‡ΠΈΠ»ΠΈ достаточно, ΠΈ я надСюсь, Ρ‡Ρ‚ΠΎ Π²Ρ‹ Π±Π΅Π· Ρ‚Ρ€ΡƒΠ΄Π° Ρ€Π°Π·Π±Π΅Ρ€Π΅Ρ‚Π΅ΡΡŒ с этими инструмСнтами.

Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅

Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ я попытался ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ясноС ΠΈ понятноС Π²Π²Π΅Π΄Π΅Π½ΠΈΠ΅ Π² NGRX, прСдоставив Π²Π°ΠΌ всС, Ρ‡Ρ‚ΠΎ Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π·Π½Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π°Ρ‡Π°Ρ‚ΡŒ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ этот инструмСнт.

Π― ΠΎΡ‡Π΅Π½ΡŒ надСюсь, Ρ‡Ρ‚ΠΎ ΡΡ‚Π°Ρ‚ΡŒΡ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚ Ρ‚Π΅Π±Π΅ ΠΏΠΎΠ½ΡΡ‚ΡŒ шаблон дСйствий ΠΈ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΡŽ Π²Π°ΠΌ ΡΠΊΠ°Ρ‡Π°Ρ‚ΡŒ Π΅Π³ΠΎ ΠΈ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠΈΠ³Ρ€Π°Ρ‚ΡŒ с ΠΊΠΎΠ΄ΠΎΠΌ.

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Angular? — Π‘Π»ΠΎΠ³ ITVDN

MiΕ‘ko рассказал ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊ Π²ΠΎΠ·Π½ΠΈΠΊΠ»Π° идСя ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ Π² ΠΈΠ½Ρ‚Π΅Ρ€Π²ΡŒΡŽ 2013 Π³ΠΎΠ΄Π°:

β€œΠœΡ‹ Ρ…ΠΎΡ‚Π΅Π»ΠΈ ΠΏΠΎΠ½ΡΡ‚ΡŒ, ΠΌΠΎΠΆΠ½ΠΎ Π»ΠΈ ΡƒΠΏΡ€ΠΎΡΡ‚ΠΈΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρƒ Π²Π΅Π±-Π΄ΠΈΠ·Π°ΠΉΠ½Π΅Ρ€ΠΎΠ², Π° Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ². Π‘ΠΌΠΎΠ³ΡƒΡ‚ Π»ΠΈ ΠΎΠ½ΠΈ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π΅Ρ‰Π΅ большС HTML Π² свой ΠΊΠΎΠ΄, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€Π΅Π²Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ ΠΎΠ±Ρ‹Ρ‡Π½ΡƒΡŽ ΡΡ‚Π°Ρ‚ΠΈΡ‡Π΅ΡΠΊΡƒΡŽ Ρ„ΠΎΡ€ΠΌΡƒ Π²ΠΎ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ Π±ΠΎΠ»Π΅Π΅ стоящСС, Ρ‡Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ ΠΏΠΎ Π΅ΠΌΠ΅ΠΉΠ»Ρƒ. ИдСя Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π»Π°ΡΡŒ Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ: Π±ΡƒΠ΄ΡŒ Ρƒ вас нСбольшой бизнСс, ΠΏΡ€ΠΎΠ΄Π°ΡŽΡ‰ΠΈΠΉ ΠΏΠΈΡ†Ρ†Ρƒ ΠΈΠ»ΠΈ Ρ‡Ρ‚ΠΎ-Π»ΠΈΠ±ΠΎ Π΄Ρ€ΡƒΠ³ΠΎΠ΅, Ρ‚ΠΎ Π²Ρ‹ ΠΌΠΎΠ³Π»ΠΈ Π±Ρ‹ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΡΡ‚ΡƒΡŽ систСму Π·Π°ΠΊΠ°Π·Π°, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ Ρ‚Π΅Π³ΠΈ, ΠΈ ΠΎΠ½ΠΈ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ отправляли Π±Ρ‹ письмо Π½Π° сСрвСр.»

ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π΄ΠΎΠΌΠ΅Π½Β angular.comΒ Π±Ρ‹Π» занят – собствСнно, ΠΊΠ°ΠΊ ΠΈ сСйчас – создатСли Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠ° ΠΏΠ΅Ρ€Π΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π»ΠΈ Angular Π² GetAngular ΠΈ выпустили нСбольшой сайт, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ ΡƒΠ·Π½Π°Ρ‚ΡŒ ΠΎ всСх Ρ„ΠΈΡ‡Π°Ρ… Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠ°.

Π”ΠΎΠΌΠ°ΡˆΠ½ΡΡ страница Angular ΠΏΠΎ ΡΠΎΡΡ‚ΠΎΡΠ½ΠΈΡŽ Π½Π° Π΄Π΅ΠΊΠ°Π±Ρ€ΡŒ 2009 Π³ΠΎΠ΄Π° (ΠΈΠ· Internet Archive).Β 

Π‘ΠΊΠΎΡ€ΠΎ MiΕ‘ko Π½Π°Ρ‡Π°Π» Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π² Google, Π° Π² 2010 Π³ΠΎΠ΄Ρƒ занялся ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠΌ Google Feedback. MiΕ‘ko ΡƒΠ±Π΅Π΄ΠΈΠ» своСго ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€Π°, Brad Green, ΠΏΠ΅Ρ€Π΅ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Π΅Π³ΠΎ Angular. ΠžΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΡ сроков ΠΈ ΠΊΠΎΠ΄Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠΊΠ°Π·Π°Π»Π° ΠΊΠΎΠΌΠ°Π½Π΄Π° Π² Ρ€Π°Π±ΠΎΡ‚Π΅, ΠΏΠΎΠΌΠΎΠ³Π»ΠΈ ΡƒΠ±Π΅Π΄ΠΈΡ‚ΡŒ Google Π² силС Angular.

Brad Green ΠΈ MiΕ‘ko Hevery ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚, ΠΊΠ°ΠΊ ΠΌΠ½ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΈ сил ΡƒΠ΄Π°Π»ΠΎΡΡŒ ΡΡΠΊΠΎΠ½ΠΎΠΌΠΈΡ‚ΡŒ Π½Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Angular. Π­Ρ‚ΠΎ ΡΠΊΡ€ΠΈΠ½ΡˆΠΎΡ‚ ΠΏΡ€Π΅Π·Π΅Π½Ρ‚Π°Ρ†ΠΈΠΈ Π½Π° ΠΊΠΎΠ½Ρ„Π΅Ρ€Π΅Π½Ρ†ΠΈΠΈ ng-conf 2014 keynote, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ стоит ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ, Ссли Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Π·Π½Π°Ρ‚ΡŒ всё ΠΎ происхоТдСнии Angular.

ВскорС послС успСха Google Feedback Ρ‚Π° ΠΆΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Π° пСрСписала open-source Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ ΠΈ Π² ΠΌΠ°Π΅ 2011 Π³ΠΎΠ΄Π° Π±Ρ‹Π»Π° Π²Ρ‹ΠΏΡƒΡ‰Π΅Π½Π° вСрсия Angular 1.0. Π’ Ρ‚Π΅Ρ‡Π΅Π½ΠΈΠ΅ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… Π»Π΅Ρ‚ Angular ΡΡ‚Ρ€Π΅ΠΌΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π½Π°Π±ΠΈΡ€Π°Π» ΠΏΠΎΠΏΡƒΠ»ΡΡ€Π½ΠΎΡΡ‚ΡŒ, ΠΈ сСгодня Google заявляСт, Ρ‡Ρ‚ΠΎ Π±ΠΎΠ»Π΅Π΅ 1,5 ΠΌΠΈΠ»Π»ΠΈΠΎΠ½Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ Angular.


Π§Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ Angular?


Angular β€” Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ JavaScript, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ прилоТСния. Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° прСдоставляСт мноТСство Ρ„ΠΈΡ‡, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΄Π΅Π»Π°ΡŽΡ‚ простыС Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ слоТных Π·Π°Π΄Π°Ρ‡ соврСмСнных ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ привязка Π΄Π°Π½Π½Ρ‹Ρ…, ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΈΠ·Π°Ρ†ΠΈΡ ΠΈ анимация.

Angular Ρ‚Π°ΠΊΠΆΠ΅ прСдставляСт ряд ΠΊΠΎΠ½Π²Π΅Π½Ρ†ΠΈΠΉ ΠΎ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π°Ρ… ΠΊ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΎΡ‡Π΅Π½ΡŒ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ для Π±ΠΎΠ»ΡŒΡˆΠΈΡ… ΠΊΠΎΠΌΠ°Π½Π΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ вмСстС Π½Π° ΠΎΠ΄Π½ΠΎΠΌ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅. Angular — это ΠΎΠ΄Π½Π° ΠΈΠ· Π½Π΅ΠΌΠ½ΠΎΠ³ΠΈΡ… Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ JavaScript, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°ΡŽΡ‚ ΠΎΠ±ΡˆΠΈΡ€Π½Ρ‹ΠΉ style guide с большим количСством наглядных ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ² Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΈΡΠ°Ρ‚ΡŒ свой ΠΊΠΎΠ΄, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ этот Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ.

Когда ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Angular?

ВСхничСски Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Angular Π³Π΄Π΅ ΡƒΠ³ΠΎΠ΄Π½ΠΎ, Π½ΠΎ Π»ΡƒΡ‡ΡˆΠ΅ всСго ΠΎΠ½ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π² нСстандартных прилоТСниях с Π΄Π°Π½Π½Ρ‹ΠΌΠΈ. Если Π²Ρ‹ ΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡ‚Π΅ΡΡŒ с Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌΠΈ прилоТСниями Angular, собранными Π½Π° madewithangular.com, Π²Ρ‹ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚Π΅ Ρ€Π΅Π°Π»ΡŒΠ½Ρ‹Π΅ прилоТСния, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡΠΎΠ±ΠΈΡ€Π°ΡŽΡ‚ Π΄Π°Π½Π½Ρ‹Π΅ ΠΈΠ· Ρ„ΠΎΡ€ΠΌ ΠΈ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ с Π½ΠΈΠΌΠΈ.

Angular Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ с Ρ„ΠΎΡ€ΠΌΠ°ΠΌΠΈ. Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ создали мноТСство ΠΈΠ³Ρ€ ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ Angular ΠΈ Ρ‚Π°ΠΊΠΈΠ΅ ΡΡƒΠΌΠ°ΡΡˆΠ΅Π΄ΡˆΠΈΠ΅ Π²Π΅Ρ‰ΠΈ, ΠΊΠ°ΠΊ прилоТСния с Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½Π½ΠΎΠΉ Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒΡŽ. Однако, Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ Ρ‚ΡƒΡ‚ΠΎΡ€ΠΈΠ°Π»ΠΎΠ² ΠΈ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ ΠΏΠΎ Angular всС Ρ€Π°Π²Π½ΠΎ содСрТат ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ создании Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… form-based ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. НапримСр, Π²Ρ‹ встраиваСтС Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡŽ Angular Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, Π³Π΄Π΅ Π²Ρ‹ создали Π³Π΅Ρ€ΠΎΠ΅Π² ΠΈ ΠΈΡ… список Ρ‡Π΅Ρ€Π΅Π· Ρ„ΠΎΡ€ΠΌΡƒ.

ΠžΠΊΠΎΠ½Ρ‡Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Π΄Π΅ΠΌΠΎ-прилоТСния Tour of Heroes ΠΈΠ· Angular Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ.

Angular Ρ…ΠΎΡ€ΠΎΡˆ Π² form-based прилоТСниях, ΠΎΠ½ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ для Π±ΠΎΠ»ΡŒΡˆΠΈΡ… ΠΈ слоТных ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. Angular — Π½Π΅ самый простой ΠΈ Π½Π΅ самый малСнький Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ JavaScript. Π‘Π»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, Ссли Π²Ρ‹ создаётС Π½Π΅Ρ‡Ρ‚ΠΎ нСбольшоС, Π²Π°ΠΌ Π»ΡƒΡ‡ΡˆΠ΅ ΠΏΠΎΠ΄ΠΎΠ±Ρ€Π°Ρ‚ΡŒ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ ΠΏΠΎΠΏΡ€ΠΎΡ‰Π΅, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, jQuery. Angular Ρ…ΠΎΡ€ΠΎΡˆΠΎ ΠΏΠΎΠ΄ΠΎΠΉΠ΄Ρ‘Ρ‚ для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π² срСдних ΠΈ Π±ΠΎΠ»ΡŒΡˆΠΈΡ… ΠΊΠΎΠΌΠ°Π½Π΄Π°Ρ…. Если Π²Ρ‹ Ρ€Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅Ρ‚Π΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ, ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ, Ρ‡Ρ‚ΠΎ шаблонного ΠΊΠΎΠ΄Π° ΠΈ ΠΊΠΎΠ½Π²Π΅Π½Ρ†ΠΈΠΉ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π² Angular Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ большС, Ρ‡Π΅ΠΌ Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ.

Angular Ρ‚Π°ΠΊΠΆΠ΅ Ρ…ΠΎΡ€ΠΎΡˆΠΎ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ для ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π² Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… срСдах Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ. Если ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π½Π° Π²Π΅Π±, Π° Ρ‚Π°ΠΊΠΆΠ΅ Π½Π° Windows ΠΈΠ»ΠΈ Maс, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΡ€ΠΈΠ΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ· многочислСнных Ρ‚ΡƒΡ‚ΠΎΡ€ΠΈΠ°Π»ΠΎΠ² для запуска Angular-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ с популярным Electron project.

Если ΠΆΠ΅ Ρƒ вас ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π½ΡƒΠΆΠ½ΠΎ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ Π½Π° Π²Π΅Π±, iOS ΠΈΠ»ΠΈ Android, ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ NativeScript для Ρ€Π΅Π½Π΄Π΅Ρ€ΠΈΠ½Π³Π° вашСго прилоТСния Π² мобильной срСдС. Π’ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… случаях Π²Ρ‹ Π΄Π°ΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Ρ€Π°ΡΠΏΡ€ΠΎΡΡ‚Ρ€Π°Π½ΡΡ‚ΡŒ ΠΊΠΎΠ΄ Ρ‡Π΅Ρ€Π΅Π· эти ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹, экономя Ρ†Π΅Π½Π½ΠΎΠ΅ врСмя Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ.

ΠšΡ‚ΠΎ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Angular?

Angular Core Team состоит ΠΈΠ· большого количСства людСй Π²ΠΎ всСм ΠΌΠΈΡ€Π΅ ΠΈ ΠΈΠ· сообщСства Angular. ΠŸΡ€ΠΈ этом большая Ρ‡Π°ΡΡ‚ΡŒ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΎΠΊ Angular ΠΈΠ·ΠΎ дня Π² дСнь осущСствляСтся сотрудниками Google. ΠŸΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ 20 сотрудников Google входят Π² Angular Core Team ΠΈ всС ВОП-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Angular ΡΠ²Π»ΡΡŽΡ‚ΡΡ сотрудниками Google.

Π‘Π»Π΅Π΄ΡƒΠ΅Ρ‚ ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ, нСсмотря Π½Π° ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒ Google Π½Π°Π΄ Angular, сам Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ ΠΏΠΎ-ΠΏΡ€Π΅ΠΆΠ½Π΅ΠΌΡƒ ΠΌΠ½ΠΎΠ³ΠΎ Π² Ρ‡Ρ‘ΠΌ зависит ΠΎΡ‚ усилий сообщСства. Π‘ΠΎΠ»Π΅Π΅ Π΄Π²ΡƒΡ… тысяч Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊ внСсли свой Π²ΠΊΠ»Π°Π΄ Π² open-source Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ Angular, Π² ΠΎΠ±Ρ‰Π΅ΠΌ доступС Π΅ΡΡ‚ΡŒ бСсчислСнныС Ρ‚ΡƒΡ‚ΠΎΡ€ΠΈΠ°Π»Ρ‹ ΠΈ guides, многочислСнныС ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ ΠΏΡ€Π΅Π΄Π»Π°Π³Π°ΡŽΡ‚ ΠΎΠ±ΡƒΡ‡Π΅Π½ΠΈΠ΅ ΠΈ Π½Π°Π±ΠΎΡ€ инструмСнтов для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ².

Если ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒ Π½Π°Π΄ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠΌ ΠΏΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠΈΡ‚ ΠΎΠ΄Π½ΠΎΠΉ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ, это Π½Π΅ΠΏΠ»ΠΎΡ…ΠΎ, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ сниТаСт ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚Π½Ρ‹Π΅ вопросы ΠΏΡ€ΠΈ принятия нСстандартных Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ.

ΠšΠ°ΠΊΡƒΡŽ Π²Π΅Ρ€ΡΠΈΡŽ Angular ΠΌΠ½Π΅ Π»ΡƒΡ‡ΡˆΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ?

На Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ сущСствуСт Π΄Π²Π΅ популярныС вСрсии Angular. ВСрсия 1 доступна Π½Π°Β https://angularjs.org/ Β ΠΈ являСтся ΠΎΠ±Π½ΠΎΠ²Π»Ρ‘Π½Π½ΠΎΠΉ вСрсиСй Ρ‚ΠΎΠ³ΠΎ Angular, Ρ‡Ρ‚ΠΎ Π±Ρ‹Π» прСдставлСн MiΕ‘ko ΠΈ Π΅Π³ΠΎ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ Π² 2011 Π³ΠΎΠ΄Ρƒ. Другая популярная вСрсия Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ называСтся просто Angular ΠΈ доступна Π½Π° https://angular.io/. Π‘ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΉ Angular – это ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ пСрСдСланная вСрсия для Π½ΠΎΠ²Ρ‹Ρ… Π±Ρ€Π°ΡƒΠ·Π΅Ρ€ΠΎΠ², Ρ€Π°Π±ΠΎΡ‡ΠΈΡ… процСссов ΠΈ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ.

ΠŸΠΎΡ‡Ρ‚ΠΈ Π²ΠΎ всСх случаях Π²Π°ΠΌ слСдуСт ΠΏΡ€ΠΈΠ΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒΡΡ послСднСй вСрсии Angular. Π’ блиТайшСм Π±ΡƒΠ΄ΡƒΡ‰Π΅ΠΌ ΠΊΠΎΠΌΠ°Π½Π΄Π° Angular Π±ΡƒΠ΄Π΅Ρ‚ ΡΡ‚Ρ€Π΅ΠΌΠΈΡ‚ΡŒΡΡ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒ Angular 1, Π½ΠΎ Π½Π΅Ρ‚ Π½ΠΈΠΊΠ°ΠΊΠΈΡ… оснований ΠΏΠΎΠ»Π°Π³Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΈ Π±ΡƒΠ΄ΡƒΡ‚ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒ ΠΈ Π±ΠΎΠ»Π΅Π΅ старыС вСрсии. Π‘ΠΎΠ»Π΅Π΅ Ρ‚ΠΎΠ³ΠΎ, Angular 1 Π½Π΅ допускаСт использования Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Π²Π½Π΅ Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π°, поэтому Π²Ρ‹ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Ρ‚Π°ΠΊΠΈΠΌΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°ΠΌΠΈ, ΠΊΠ°ΠΊ NativeScript для создания ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ.

Как выглядит Angular-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅?

Π’Π΅ΠΏΠ΅Ρ€ΡŒ, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ ΠΈΠΌΠ΅Π΅Ρ‚Π΅ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ прСдставлСниС ΠΎΠ± Angular, Π΄Π°Π²Π°ΠΉΡ‚Π΅ углубимся Π² ΠΊΠΎΠ΄. Начнём с нСбольшого прилоТСния β€œhello world”. ВсС прилоТСния Angular Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‚ΡΡ с НВМL-страницы, которая выглядит ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ.

Π’ Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠΌ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ Ρ‚Π΅Π³ < script >Β Π²Π½ΡƒΡ‚Ρ€ΠΈ Ρ‚Π΅Π³Π° < head >Β ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ слоТным, Π½ΠΎ Π² высокоуровнСвых прилоТСниях ΠΎΠ½ Ρ‚Π°ΠΊΠΎΠΉ ΠΆΠ΅, ΠΊΠ°ΠΊ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Π²Π΅Π±-прилоТСниях – Π²Ρ‹ Π·Π°Π³Ρ€ΡƒΠΆΠ°Π΅Ρ‚Π΅ кусок JavaScript-ΠΊΠΎΠ΄Π° Π² HTML-Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚, ΠΈ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚.Β Β 

Π•ΡΡ‚ΡŒ ΠΎΠ΄Π½Π° ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Π°Ρ Π²Π΅Ρ‰ΡŒ Π² Π²Ρ‹ΡˆΠ΅ ΠΏΡ€ΠΈΠ²Π΅Π΄Ρ‘Π½Π½ΠΎΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ – элСмСнт < my-app >. Π’Ρ‹ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ этот элСмСнт рСгулярно Π² Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ. ЦСль Angular – постоянно Ρ€Π°ΡΡˆΠΈΡ€ΡΡ‚ΡŒ ΡΠ»ΠΎΠ²Π°Ρ€ΡŒ НВМL, позволяя Π²Π°ΠΌ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡ‚ΡŒ собствСнныС Ρ‚Π΅Π³ΠΈ.

Π’Π°ΠΊΠΈΠ΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠ΅ Ρ‚Π΅Π³ΠΈ Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°ΠΌΠΈ, ΠΈ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡ‚ΡŒ ΠΈΡ… ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Π² ΠΊΠΎΠ΄Π΅. Π’ΠΎΡ‚ ΠΏΡ€ΠΎΡΡ‚Π΅ΠΉΡˆΠ°Ρ рСализация элСмСнта < my-app >:

Π•ΡΡ‚ΡŒ нСсколько ΠΌΠΎΠΌΠ΅Π½Ρ‚ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π·Π½Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ½ΡΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ происходит Π² Π΄Π°Π½Π½ΠΎΠΌ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Π΅ ΠΊΠΎΠ΄Π°. ΠŸΠ΅Ρ€Π²ΠΎΠ΅ – это ΠΊΠΎΠ΄ Π½Π° TypeScript, Π° Π½Π΅ Π½Π° JavaScript. TypeScript ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ Π²Π°ΠΌ ΠΏΡƒΠ³Π°ΡŽΡ‰ΠΈΠΌ, Ссли Π²Ρ‹ Π½Π΅ Π²ΡΡ‚Ρ€Π΅Ρ‡Π°Π»ΠΈΡΡŒ с Π½ΠΈΠΌ Ρ€Π°Π½ΡŒΡˆΠ΅, Π½ΠΎ Π΅Π³ΠΎ основы ΠΏΠΎΠ½ΡΡ‚ΡŒ Π½Π΅Ρ‚Ρ€ΡƒΠ΄Π½ΠΎ.

TypeScript – надстройка Π½Π°Π΄ JavaScript, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ вСсь синтаксис JavaScript доступСн Π½Π° TypeScript. ΠšΡΡ‚Π°Ρ‚ΠΈ, вСсь ΠΏΡ€ΠΈΠ²Π΅Π΄Ρ‘Π½Π½Ρ‹ΠΉ Π²Ρ‹ΡˆΠ΅ синтаксис – import,Β export,Β @Component ΠΈ ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Π΅ – это ΠΈΠ»ΠΈ Π½Ρ‹Π½Π΅ΡˆΠ½ΠΈΠ΅ Ρ„ΠΈΡ‡ΠΈ JavaScript, ΠΈΠ»ΠΈ Ρ‚Π΅, Ρ‡Ρ‚ΠΎ появятся Π² блиТайшСм Π±ΡƒΠ΄ΡƒΡ‰Π΅ΠΌ. Π’Π°ΠΊ Ρ‡Ρ‚ΠΎ, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ ΡƒΡ‡ΠΈΡ‚Π΅ TypeScript, Π²Ρ‹ ΠΈΠ·ΡƒΡ‡Π°Π΅Ρ‚Π΅ Π±ΡƒΠ΄ΡƒΡ‰Π΅Π΅ JavaScript. TypeScript, ΠΊ Ρ‚ΠΎΠΌΡƒ ΠΆΠ΅, отличаСтся прСвосходной Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠ΅ΠΉ, ΠΊ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒΡΡ Π² любоС врСмя.

TypeScript Π±Ρ‹Π» создан ΠΈ поддСрТиваСтся Microsoft. Он стал ΠΎΡ‡Π΅Π½ΡŒ популярным Π·Π° послСдниС нСсколько Π»Π΅Ρ‚, поэтому ΠΌΠΎΠΆΠ΅Ρ‚Π΅ смСло ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ Π² Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ своих ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. Он Π½ΠΈΠΊΡƒΠ΄Π° Π½Π΅ дСнСтся.

Π”Π°Π²Π°ΠΉΡ‚Π΅ Π΅Ρ‰Π΅ Ρ€Π°Π· посмотрим Π½Π° TypeScript-ΠΊΠΎΠ΄, ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‰ΠΈΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Β < my-app >:

Π’ Angular Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ Ρ‚Π΅Π³ @Component, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ извСстСн ΠΊΠ°ΠΊ Π΄Π΅ΠΊΠΎΡ€Π°Ρ‚ΠΎΡ€, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ классы, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°ΡŽΡ‚ элСмСнты, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½Ρ‹ Π² вашСй HTML-Ρ€Π°Π·ΠΌΠ΅Ρ‚ΠΊΠ΅. Π£ вас Π΅ΡΡ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Ρ‚ΡŒ свойства @Component для описания элСмСнта.Β 

  • Бвойство selector опрСдСляСт имя Ρ‚Π΅Π³Π° ΠΏΡ€ΠΈ Π²Π²ΠΎΠ΄Π΅ Π² HTML. ИспользованиС сСлСктора < my-app >Β ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Angular, Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒ, ΠΊΠΎΠ³Π΄Π° ΠΎΠ½ Π²ΠΈΠ΄ΠΈΡ‚ Ρ‚Π΅Π³ < my-app >Β Π² HTML.
  • Бвойство template ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΠΈΡ€ΡƒΠ΅Ρ‚, Ρ‡Ρ‚ΠΎ HTML Π΄ΠΎΠ»ΠΆΠ΅Π½ Π΄Π΅Π»Π°Ρ‚ΡŒ, ΠΊΠΎΠ³Π΄Π° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚. ΠŸΡ€ΠΈΠΌΠ΅Ρ€ использования template: «< h2 >Hello World< /h2Β >», Ρ‚ΡƒΡ‚ Π²ΠΈΠ΄Π½ΠΎ, ΠΊΠ°ΠΊ Angular опрСдСляСт, ΠΊΠ°ΠΊΠΈΠ΅ дСйствия ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ ΠΏΡ€ΠΈ < my-app >Β ΠΈ ΠΏΠΎΡ‡Π΅ΠΌΡƒ это ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ прСдставляСт Π±Π°Π·ΠΎΠ²Ρ‹ΠΉ Ρ‚Π΅Π³ < h2 >Β ΠΏΡ€ΠΈ ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΌ просмотрС Π² Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π΅.Β 

ΠžΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° β€œHello World” Π² Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π΅.

Π—Π°Ρ‡Π΅ΠΌ ΠΌΠ½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Angular?

Angular- Π½Π΅ самый простой Π² ΠΌΠΈΡ€Π΅ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ, ΠΈ понадобится врСмя, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ½ΡΡ‚ΡŒ Ρ‚Π΅ ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΠΈ, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΎΠ½ построСн. Но ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ Π²ΠΎΠ·ΡŒΠΌΠ΅Ρ‚Π΅ΡΡŒ Π·Π° Angular, Ρ‚ΠΎ смоТСтС Π΄Π΅Π»Π°Ρ‚ΡŒ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΊΡ€ΡƒΡ‚Ρ‹Π΅ прилоТСния, ΠΎΠ±Ρ…ΠΎΠ΄ΡΡΡŒ нСбольшим количСством ΠΊΠΎΠ΄Π°. НапримСр, Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ привязку Π΄Π°Π½Π½Ρ‹Ρ… ΠΊ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΌΡƒ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρƒ. Для этого ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΎΡ‡Π΅Π½ΡŒ простой синтаксис.

Π₯ΠΎΡ‚ΠΈΡ‚Π΅ ΠΏΠΎΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ Ρ„ΠΎΡ€ΠΌΡƒ для запуска прилоТСния? Π₯ΠΎΡ‚ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎΠ±Ρ‹ эта Ρ„ΠΎΡ€ΠΌΠ° ΠΈΠΌΠ΅Π»Π° Π²Π°Π»ΠΈΠ΄Π°Ρ†ΠΈΡŽ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ Π΄Π²ΡƒΡΡ‚ΠΎΡ€ΠΎΠ½Π½ΡŽΡŽ привязку? Для этого Π΅ΡΡ‚ΡŒ простой Π³Π°ΠΉΠ΄. Π’Π°ΡˆΠ΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ слишком большоС ΠΈ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΡΡ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ? И для этого Ρ‚ΠΎΠΆΠ΅ создан Π³Π°ΠΉΠ΄. Попали Π² ΠΌΠΎΠ΄ΡƒΠ»ΡŒΠ½ΠΎΠ΅ тСстированиС ΠΈ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Π·Π½Π°Ρ‚ΡŒ, ΠΊΠ°ΠΊ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ ΠΊΠΎΠ΄?

Вакая Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Ρ‚ΠΎΠΆΠ΅ Π΅ΡΡ‚ΡŒ. Π₯ΠΎΡ‚ΠΈΡ‚Π΅ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Ρ‚Π°ΠΊΠΈΠ΅ ΠΏΡ€ΠΎΡ„Π΅ΡΡΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Π΅ Π²ΠΈΠ΄ΠΆΠ΅Ρ‚Ρ‹, ΠΊΠ°ΠΊ Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΡ‹ ΠΈ Π³Ρ€Π°Ρ„ΠΈΠΊΠΈ? Kendo UI ΠΈ ΠΏΠΎΡ…ΠΎΠΆΠΈΠ΅ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΈ ΡƒΠΏΡ€ΠΎΡ‰Π°ΡŽΡ‚ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ этих высококачСствСнных ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ интСрфСйса.

ΠŸΠΎΠ»ΡŒΠ·ΡƒΡΡΡŒ Angular, Π½Π΅ рассчитывайтС Π½Π° простоту Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠ°, Π½ΠΎ Π±ΡƒΠ΄ΡŒΡ‚Π΅ ΡƒΠ²Π΅Ρ€Π΅Π½Ρ‹ Π² Π΅Π³ΠΎ нСвСроятной надёТности ΠΈ Ρ…ΠΎΡ€ΠΎΡˆΠ΅ΠΉ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ. Π­Ρ‚ΠΎΡ‚ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ ΠΏΡ€ΠΎΡˆΡ‘Π» Π½Π΅ ΠΎΠ΄Π½ΠΎ Π±ΠΎΠ΅Π²ΠΎΠ΅ испытаниС ΠΈ заслуТСно ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΌΠΈΠ»Π»ΠΈΠΎΠ½Π°ΠΌΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² для написания ΠΊΡ€ΡƒΡ‚Ρ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. БообщСство Angular – ΠΎΠ³Ρ€ΠΎΠΌΠ½ΠΎΠ΅, ΠΈ всС Ρ…Π΅Π»ΠΏΡ‹ Π»Π΅Π³ΠΊΠΎ Π½Π°ΠΉΡ‚ΠΈ Π² Google, Stack Overflow ΠΈ ΠΏΠΎ всСму ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚Ρƒ. Π˜Ρ‰ΠΈΡ‚Π΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°? Высячи Angular Π΄Π΅Π²Π΅Π»ΠΎΠΏΠ΅Ρ€ΠΎΠ² откликнутся Π½Π° ваш запрос. Π•ΡΡ‚ΡŒ Π΄Π°ΠΆΠ΅ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ Ρ€Π΅ΠΊΡ€ΡƒΡ‚ΠΈΠ½Π³ΠΎΠ²Ρ‹Π΅ сайты.

Π― ΡƒΠΆΠ΅ ΡƒΠΏΠΎΠΌΠΈΠ½Π°Π» ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Angular – ΠΌΡƒΠ»ΡŒΡ‚ΠΈΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Π½Π½Ρ‹ΠΉ? ВСрнСмся ΠΊ Π½Π°ΡˆΠ΅ΠΌΡƒ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρƒ Hello World. Π£ вас ΡƒΠΆΠ΅ Π΅ΡΡ‚ΡŒ Π½Π°Ρ‡Π°Π»ΠΎ для iOS ΠΈ Android прилоТСния – просто ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅ элСмСнт HTMLΒ Π½Π° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ NativeScript ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΡ‚ΠΎΠ±Ρ€Π°Π·ΠΈΡ‚ΡŒ Π² мобильной срСдС, ΠΊΠ°ΠΊΒ , Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€. Π’ΠΎΡ‚ Ρ‚Π°ΠΊ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ ΠΊΠΎΠ΄.

А Π²ΠΎΡ‚ ΠΊΠ°ΠΊ этот ΠΊΠΎΠ΄ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π² Π½Π°Ρ‚ΠΈΠ²Π½Ρ‹Ρ… iOS ΠΈ Android прилоТСниях.

AngularΒ Π΄Π΅Π»Π°Π΅Ρ‚ это ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠ΅ Π΄Ρ€ΡƒΠ³ΠΎΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹ΠΌ. ΠžΡ‚ создания ΠΏΠΎΡ‚Ρ€ΡΡΠ°ΡŽΡ‰ΠΈΡ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π΄ΠΎ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ ΠΌΡƒΠ»ΡŒΡ‚ΠΈΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Π½Π½ΠΎΠΉ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ, Angular ΠΌΠΎΠΆΠ΅Ρ‚ ΡΡ‚Π°Ρ‚ΡŒ ΠΎΡ‚Π»ΠΈΡ‡Π½Ρ‹ΠΌ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ΠΌ для вашСго ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π³ΠΎ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°. Β 

Если Π²Ρ‹ ΠΈΡ‰ΠΈΡ‚Π΅ большС ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠΈΡ‚ΡŒ Angular, Π½Π°Ρ‡ΠΈΠ½Π°ΠΉΡ‚Π΅ ΠΈΠ·ΡƒΡ‡Π°Ρ‚ΡŒ Ρ‚ΡƒΡ‚ΠΎΡ€ΠΈΠ°Π»Ρ‹ ΠΏΠΎ быстрому старту Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Angular ΠΈ Π½Π°Ρ‡ΠΈΠ½Π°ΠΉΡ‚Π΅ ΠΊΠΎΠ΄ΠΈΡ‚ΡŒ. Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Angular для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, посмотритС, ΠΊΠ°ΠΊ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ с NativeScript. Π’Ρ‹ ΠΈΠ·ΡƒΡ‡ΠΈΡ‚Π΅ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· самых популярных Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΎΠ² JavaScript, ΠΊΠΎΠ³Π΄Π° Π±ΡƒΠ΄Π΅Ρ‚Π΅ Π·Π½Π°ΠΊΠΎΠΌΠΈΡ‚ΡŒΡΡ со ΡΡ‚ΠΎΠ»ΡŒ популярным ΠΌΠΈΡ€ΠΎΠΌ мобильной Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ.

ΠžΡ€ΠΈΠ³ΠΈΠ½Π°Π» ΡΡ‚Π°Ρ‚ΡŒΠΈ: http://linkis.com/telerik.com/7vemI

10 ΠΏΠΎΠ»Π΅Π·Π½Ρ‹Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ Angular, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ упускали

Если Π²Ρ‹ рСгулярно ΠΏΠΈΡˆΠ΅Ρ‚Π΅ прилоТСния Π½Π° Angular ΠΈ ΠΏΠΎΡ‚Ρ€Π°Ρ‚ΠΈΠ»ΠΈ Π½Π° это Π½Π΅ ΠΎΠ΄Π½Ρƒ ΡΠΎΡ‚Π½ΡŽ часов, Π²Ρ‹, скорСС всСго, Π·Π½Π°Π΅Ρ‚Π΅ ΠΎΠ± этих функциях. Но, всё ΠΆΠ΅, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ±Π΅Π΄ΠΈΡ‚ΡŒΡΡ β€” ΠΏΡ€ΠΎΡ‡Ρ‚ΠΈΡ‚Π΅ πŸ™‚

ΠŸΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ ΠΌΡ‹ ΠΏΠ΅Ρ€Π΅ΠΉΠ΄Π΅ΠΌ ΠΊ функциям Angular, стоит ΡƒΠΏΠΎΠΌΡΠ½ΡƒΡ‚ΡŒ ΠΎΠ΄ΠΈΠ½ ΠΎΡ‡Π΅Π½ΡŒ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ΠΉ инструмСнт. Bit (Github) позволяСт с Π»Π΅Π³ΠΊΠΎΡΡ‚ΡŒΡŽ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π½Π°Π΄ Angular-ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°ΠΌΠΈ вмСстС ΠΈ Π΄Π΅Π»ΠΈΡ‚ΡŒΡΡ ΠΈΠΌΠΈ. ΠžΡ‚ Π΄ΡƒΡˆΠΈ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΡŽ Π΅Π³ΠΎ для поддСрТания консистСнтного интСрфСйса, ускорСния Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈ ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ количСства ошибок Π² ΠΊΠΎΠ΄Π΅.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€: ΠšΡ€ΡƒΠ³ΠΎΠ²Ρ‹Π΅ Π·Π°Π³Ρ€ΡƒΠ·Ρ‡ΠΈΠΊΠΈ для Angular с bit.dev

1. Title

Π’Π΅Π³ title β€” это HTML-элСмСнт, ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‰ΠΈΠΉ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ Π²Π΅Π±-страницы. Π—Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΈ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°ΡŽΡ‚ΡΡ Π½Π° страницС Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ² поиска (SERP) Π² Π²ΠΈΠ΄Π΅ кликабСльного заглавия Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π°. Они ΠΎΡ‡Π΅Π½ΡŒ Π²Π°ΠΆΠ½Ρ‹ для ΡŽΠ·Π°Π±ΠΈΠ»ΠΈΡ‚ΠΈ, SEO ΠΈ продвиТСния Π² соц. сСтях.

ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π½Π° Angular Π±Π΅Ρ€ΡƒΡ‚ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ ΠΈΠ· Ρ‚Π΅Π³Π° … Π² index.html. По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ, ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°ΠΌΠΈ Π² Angular этот Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ Π½Π΅ мСняСт.

Π—Π½Π°Π΅Ρ‚Π΅ Π»ΠΈ Π²Ρ‹, Ρ‡Ρ‚ΠΎ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°Π΄Π°Ρ‚ΡŒ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎ ΠΈΠ· ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°?

Π’ Angular Π΅ΡΡ‚ΡŒ сСрвис Title Π² angular/platform-browser. МоТно Π»Π΅Π³ΠΊΠΎ Π²Π½Π΅Π΄Ρ€ΠΈΡ‚ΡŒ Π΅Π³ΠΎ Π² Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ setTitle, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠ΅Ρ€Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ.

import { Title } from "@angular/platform-browser"@Component({
   ...
})
export class LoginComponent implements OnInit {
   constructor(private title: Title) {}    ngOnInit() {
       title.setTitle("Login")
   }
}

ΠŸΡ€ΠΈ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π΅ ΠΊ LoginComponent Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ, Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ ΠΎΠΊΠ½Π° Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π° измСнится Π½Π° β€œLogin”.

Π’ΠΎ ΠΆΠ΅ самоС ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π² любом ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π΅ ΠΈ, соотвСтствСнно, ΠΏΠΎ ΠΌΠ΅Ρ€Π΅ Π½Π°Π²ΠΈΠ³Π°Ρ†ΠΈΠΈ Π²Π½ΡƒΡ‚Ρ€ΠΈ прилоТСния Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ Π±ΡƒΠ΄Π΅Ρ‚ ΠΌΠ΅Π½ΡΡ‚ΡŒΡΡ, рСагируя Π½Π° дСйствия ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ.

2. Meta

ΠœΠ΅Ρ‚Π°Ρ‚Π΅Π³ΠΈ Angular-прилоТСния Ρ‚ΠΎΠΆΠ΅ Π±Π΅Ρ€ΡƒΡ‚ ΠΈΠ· Ρ„Π°ΠΉΠ»Π° index.html. А Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π·Π°Π΄Π°Π²Π°Ρ‚ΡŒ ΠΈΡ… ΠΈΠ· ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ², пригодится сСрвис Meta ΠΈΠ· angular/platform-browser.

И снова: ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΌΠ΅Ρ‚Π°Ρ‚Π΅Π³ΠΎΠ² ΠΏΠΎΠ»Π΅Π·Π½ΠΎ с Ρ‚ΠΎΡ‡ΠΊΠΈ зрСния SEO ΠΈ продвиТСния страницы Π² соц. сСтях, ΠΎΠ½ΠΈ содСрТат ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ Π²Π΅Π±-страницС, которая ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ поисковыми систСмами для ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠ³ΠΎ ранТирования ΠΈ ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎΠ³ΠΎ отобраТСния Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π°Ρ… поиска.

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ ΠΌΠ΅Ρ‚Π°Ρ‚Π΅Π³ΠΎΠ², ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΡƒΠΉΡ‚Π΅ Meta ΠΈΠ· angular/platform-browser ΠΈ Π²Π½Π΅Π΄Ρ€ΠΈΡ‚Π΅ Π² Π½ΡƒΠΆΠ½Ρ‹ΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚.

import { Meta } from "@angular/platform-browser"@Component({
    ...
})
export class BlogComponent implements OnInit {
    constructor(private meta: Meta) {}    ngOnInit() {
        meta.updateTag({name: "title", content: ""})
        meta.updateTag({name: "description", content: "Lorem ipsum dolor"})
        meta.updateTag({name: "image", content: "./assets/blog-image.jpg"})
        meta.updateTag({name: "site", content: "My Site"})
    }
}

Π’Π΅ΠΏΠ΅Ρ€ΡŒ BlogComponent смоТСт ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒΡΡ Π² Twitter, Facebook ΠΈ Ρ‚.Π΄. ΠŸΡ€ΠΈ этом выводя описания, Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΈ ΠΈ изобраТСния Π² ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠΌ, Ρ‡ΠΈΡ‚Π°Π±Π΅Π»ΡŒΠ½ΠΎΠΌ Π²ΠΈΠ΄Π΅.
Об это Ρ‚ΠΎΠΆΠ΅ ΡΠ»Ρ‹ΡˆΠ°Π»ΠΈ? Π’ΠΎΠ³Π΄Π° Π²ΠΎΡ‚ ΠΊΠΎΠ΅-Ρ‡Ρ‚ΠΎ поинтСрСснСС.

3. ΠŸΠ΅Ρ€Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ интСрполяции шаблонов

Π‘Ρ‚Π°Π½Π΄Π°Ρ€Ρ‚Π½Ρ‹ΠΉ интСрполятор Π² ΡˆΠ°Π±Π»ΠΎΠ½Π°Ρ… β€” {{}}. Если Π²ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ ΠΌΠ΅ΠΆΠ΄Ρƒ {{ ΠΈ }}, Π΅Ρ‘ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ отобразится Π² ΠΈΡ‚ΠΎΠ³ΠΎΠ²ΠΎΠΌ DOM.

Π—Π½Π°Π΅Ρ‚Π΅ Π»ΠΈ Π²Ρ‹, Ρ‡Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ стандартныС Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚Π΅Π»ΠΈ инкапсуляции Π½Π° ΠΊΠ°ΠΊΠΈΠ΅ ΡƒΠ³ΠΎΠ΄Π½ΠΎ символы? Π­Ρ‚ΠΎ просто. НСобходимо лишь ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ Π½ΠΎΠ²Ρ‹Π΅ значСния Π² свойствС интСрполяции Π² Π΄Π΅ΠΊΠΎΡ€Π°Ρ‚ΠΎΡ€Π΅ Component.

@Component({
   interpolation: ["((","))"]
})
export class AppComponent {}

Π˜Π½Ρ‚Π΅Ρ€ΠΏΠΎΠ»ΡΡ†ΠΈΡ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠ°Ρ Π² шаблонС AppComponent измСнилась Π½Π° (()), Π° {{}} большС Π½Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚.

@Component({
   template: `
       <div>
           ((data))
       </div>
   `,
   interpolation: ["((","))"]
})
export class AppComponent {
   data: any = "dataVar"
}

Π’ Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π΅ Π²Ρ‹ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎ строка Β«dataVarΒ» Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½Π° Π½Π° мСстС ((data)).

4. Location

ΠœΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ URL страницы, ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΎΠΉ Π² Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π΅, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ сСрвис Location. Π’ зависимости ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊΠΎΠΉ LocationStrategy ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ, Location Π±ΡƒΠ΄Π΅Ρ‚ ΡΠΎΡ…Ρ€Π°Π½ΡΡ‚ΡŒΡΡ Π»ΠΈΠ±ΠΎ ΠΏΠΎ ΠΏΡƒΡ‚ΠΈ Π² URL (/example/page/), Π»ΠΈΠ±ΠΎ ΠΏΠΎ части URL послС Ρ€Π΅ΡˆΡ‘Ρ‚ΠΊΠΈ (#test/page/).

Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Location ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ ΠΊ URL-адрСсу, ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ Π²ΠΏΠ΅Ρ€Π΅Π΄ Π² истории, Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒΡΡ Π½Π°Π·Π°Π΄, ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ URL-адрСс, ΠΈΠ»ΠΈ Π·Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π²Π΅Ρ€Ρ…Π½ΠΈΠΉ элСмСнт Π² истории.

Π—Π΄Π΅ΡΡŒ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚ сСрвис Location ΠΈΠ· CommonModule.

import { Location } from "@angular/common"@Component({
   ...
})
export class AppComponent {
   constructor(private location: Location) {}    navigateTo(url) {
       this.location.go(url)
   }    goBack() {
       location.back()
   }    goForward() {
       location.forward()
   }
}

5. Document

Иногда Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ модСль Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ с DOM прямо ΠΈΠ· Angular прилоТСния.

DOCUMENT ΠΊΠ°ΠΊ Ρ€Π°Π· ΠΈ слуТит этой Ρ†Π΅Π»ΠΈ. DOCUMENT β€” это DI-Ρ‚ΠΎΠΊΠ΅Π½, ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΠΉ основной контСкст Ρ€Π΅Π½Π΄Π΅Ρ€ΠΈΠ½Π³Π°. Π’ Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π΅ это DOM Document. Он обСспСчиваСт ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ с DOM нСзависимо ΠΎΡ‚ срСды выполнСния.

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅: Document ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ нСдоступСн Π² Application Context, Ссли контСксты Application ΠΈ Rendering Π½Π΅ ΡΠΎΠ²ΠΏΠ°Π΄Π°ΡŽΡ‚ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΏΡ€ΠΈ запускС прилоТСния Π² Web Worker).

Допустим, Ρƒ нас Π΅ΡΡ‚ΡŒ ΠΊΠ°ΠΊΠΎΠΉ-Ρ‚ΠΎ HTML элСмСнт:

<canvas></canvas>

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ canvas HTMLElement внСдряСм DOCUMENT:

@Component({})
export class CanvasElement {
   constructor(@Inject(DOCUMENT) _doc: Document) {}
}

ΠŸΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ HTMLElement canvas ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ getElementById()

@Component({})
export class CanvasElement {
   constructor(@Inject(DOCUMENT) _doc: Document) {}    renderCanvas() {
       this._doc.getElementById("canvas")
   }
}

ΠŸΡ€Π΅Π΄ΡƒΠΏΡ€Π΅ΠΆΠ΄Π΅Π½ΠΈΠ΅: ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ DOCUMENT остороТно! ВзаимодСйствиС с DOM Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ опасно ΠΈ ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠ²Π°Π΅Ρ‚ риск XSS.

6. Π”Π΅ΠΊΠΎΡ€Π°Ρ‚ΠΎΡ€ @Attribute

Π’ основном, Π² Angular ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ Π΄Π΅ΠΊΠΎΡ€Π°Ρ‚ΠΎΡ€Ρ‹ Component, Module ΠΈ Directive.

Однако, Π΅Ρ‰Ρ‘ Π΅ΡΡ‚ΡŒ Π΄Π΅ΠΊΠΎΡ€Π°Ρ‚ΠΎΡ€ Attribute, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠΉ ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Ρ‚ΡŒ ΡΡ‚Π°Ρ‚ΠΈΡ‡Π΅ΡΠΊΡƒΡŽ строку Π±Π΅Π· Π»ΠΈΡˆΠ½ΠΈΡ… Π·Π°Ρ‚Ρ€Π°Ρ‚ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ, минуя ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΡƒ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ.

ЗначСния Π΄Π΅ΠΊΠΎΡ€Π°Ρ‚ΠΎΡ€Π° Attribute ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΡŽΡ‚ΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄ΠΈΠ½ Ρ€Π°Π·. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½ΠΎ Π΄Π΅ΠΊΠΎΡ€Π°Ρ‚ΠΎΡ€Ρƒ Input:

@Component({
   ...
})
export class BlogComponent {
   constructor(@Attribute("type") private type: string ) {}
}

7. HttpInterceptor

HttpInterceptor β€” ΠΎΡ‡Π΅Π½ΡŒ мощная функция Π² Angular, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰Π°Ρ ΠΏΠ΅Ρ€Π΅Ρ…Π²Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ запросы HttpRequest ΠΈ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ ΠΈΡ….

Π‘ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ ΠΏΠ΅Ρ€Π΅Ρ…Π²Π°Ρ‚Ρ‡ΠΈΠΊΠΎΠ² ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΡŽΡ‚ исходящий запрос, ΠΏΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ Π΅Π³ΠΎ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌΡƒ ΠΏΠ΅Ρ€Π΅Ρ…Π²Π°Ρ‚Ρ‡ΠΈΠΊΡƒ Π² Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠ΅, вызывая next.handle(transformedReq).

Π’ Ρ€Π΅Π΄ΠΊΠΈΡ… случаях, ΠΏΠ΅Ρ€Π΅Ρ…Π²Π°Ρ‚Ρ‡ΠΈΠΊΠΈ ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ запрос ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ, Π° Π½Π΅ Π΄Π΅Π»Π΅Π³ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΡΡ‚Π°Π²ΡˆΡƒΡŽΡΡ Ρ‡Π°ΡΡ‚ΡŒ Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠΈ дальшС. Π’Π°ΠΊΠΎΠ΅ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΎ.

HttpInterceptor Ρ‡Π°Ρ‰Π΅ всСго ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π²:

  • АутСнтификации
  • ΠšΡΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ
  • Fake backend
  • Врансформации URL
  • ПодмСнС Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΎΠ²

Для использования этого ΠΏΠ΅Ρ€Π΅Ρ…Π²Π°Ρ‚Ρ‡ΠΈΠΊΠ°, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ сСрвис ΠΈ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ интСрфСйс HttpInterceptor.

@Injectable()
export class MockBackendInterceptor implements HttpInterceptor {
   constructor() {}    intercept(req: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {
       ...
   }
}

ВставляСм Π΅Π³ΠΎ Π² основной ΠΌΠΎΠ΄ΡƒΠ»ΡŒ:

@NgModule({
   ...
   providers: [
       {
           provide: HTTP_INTERCEPTORS,
           useClass: MockBackendInterceptor,
           multi: true
       }
   ]
   ...
})
export class AppModule {}

8. AppInitializer

Иногда, ΠΏΡ€ΠΈ запускС Angular-прилоТСния, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠ°ΠΊΠΎΠΉ-Π»ΠΈΠ±ΠΎ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΉ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ ΠΊΠΎΠ΄Π°. НапримСр, Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ настройки, Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ кэш, Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ ΠΊΠ°ΠΊΠΈΠ΅-Π»ΠΈΠ±ΠΎ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ ΠΈΠ»ΠΈ произвСсти ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ. Π’ΠΎΠΊΠ΅Π½ AppInitialzer создан ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ для этого.
APP_INITIALIZER: функция, исполняСмая сразу ΠΆΠ΅ ΠΏΠΎ Ρ„Π°ΠΊΡ‚Ρƒ запуска прилоТСния.
Допустим, Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ Π½Π΅ΠΊΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ runSettings ΠΏΡ€ΠΈ стартС Angular-прилоТСния:

function runSettingsOnInit() {
   ...
}

Для этого ΠΏΠ΅Ρ€Π΅ΠΉΠ΄Π΅ΠΌ ΠΊ основному ΠΌΠΎΠ΄ΡƒΠ»ΡŽ AppModule ΠΈ Π΄ΠΎΠ±Π°Π²ΠΈΠΌ Π΅Ρ‘ Π² Ρ€Π°Π·Π΄Π΅Π» ΠΏΡ€ΠΎΠ²Π°ΠΉΠ΄Π΅Ρ€ΠΎΠ² Π΄Π΅ΠΊΠΎΡ€Π°Ρ‚ΠΎΡ€Π° NgModule:

@NgModule({
   providers: [
       { provide: APP_INITIALIZER, useFactory: runSettingsOnInit }
   ]
})

9. Bootstrap Listener

По Π°Π½Π°Π»ΠΎΠ³ΠΈΠΈ с AppInitialzer, Π² Angular Π΅ΡΡ‚ΡŒ функция ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰Π°Ρ ΠΎΡ‚ΡΠ»Π΅ΠΆΠΈΠ²Π°Ρ‚ΡŒ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΡƒ ΠΊΠ°ΠΊΠΎΠ³ΠΎ-Π»ΠΈΠ±ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°. Π­Ρ‚ΠΎ APP_BOOTSTRAP_LISTENER.

ВсС ΠΊΠΎΠ»Π»Π±Π΅ΠΊΠΈ, Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΡ‹Π΅ этим Ρ‚ΠΎΠΊΠ΅Π½ΠΎΠΌ, Π±ΡƒΠ΄ΡƒΡ‚ Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒΡΡ для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Π·Π°Π³Ρ€ΡƒΠΆΠ°Π΅ΠΌΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°.

ΠŸΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ эту Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ отслСТивания Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠΉ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ… случаях. НапримСр, ΠΌΠΎΠ΄ΡƒΠ»ΡŒ Router ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Π΅Ρ‘ для уничтоТСния ΠΈ создания ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² Π½Π° основС Π½Π°Π²ΠΈΠ³Π°Ρ†ΠΈΠΈ ΠΏΠΎ ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚Ρƒ.

Для использования APP_BOOTSTRAP_LISTENER, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π΅Π³ΠΎ Π² Ρ€Π°Π·Π΄Π΅Π» ΠΏΡ€ΠΎΠ²Π°ΠΉΠ΄Π΅Ρ€ΠΎΠ² Π² AppModule с Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠ³ΠΎ Π²Ρ‹Π·ΠΎΠ²Π°:

@NgModule({
   {
       provide: APP_BOOTSTRAP_LISTENER, multi: true,
       useExisting: runOnBootstrap
   }
   ...
})
export class AppModule {}

10. NgPlural

ΠŸΠ»ΡŽΡ€Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡ β€” головная боль программистов. Π—Π°Π΄Π°Ρ‡Π° грамматичСской ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²ΠΊΠΈ словоформ Π² зависимости ΠΎΡ‚ употрСблСния СдинствСнного / мноТСствСнного числа Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ постоянно. НСкоторыС сайты просто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ для этого ΠΎΠΊΠΎΠ½Ρ‡Π°Π½ΠΈΠ΅ (s). НапримСр:

1 component(s) removed
3 component(s) removed

Π’ΠΎ Π΅ΡΡ‚ΡŒ Ρ‡ΠΈΡ‚Π°Ρ‚Π΅Π»ΡŒ сам Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΏΠΎΠ½ΡΡ‚ΡŒ, ΠΊΠ°ΠΊΠΎΠ΅ число подразумСваСтся πŸ™‚

Angular ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ Ρ€Π΅ΡˆΠΈΡ‚ΡŒ эту ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ Π±ΠΎΠ»Π΅Π΅ Ρ†ΠΈΠ²ΠΈΠ»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΠΎ, с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Ρ‹ NgPlural.

NgPlural добавляСт ΠΈΠ»ΠΈ удаляСт ΠΏΠΎΠ΄Π²Π΅Ρ‚Π²ΠΈ DOM Π½Π° основании числового значСния. Для ΠΏΠ»ΡŽΡ€Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ β€” Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π½ΡƒΠΆΠ½ΠΎ.

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ эту Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Ρƒ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π·Π°Π΄Π°Ρ‚ΡŒ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ [ngPlural] ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Ρƒ элСмСнта Π² Π²ΠΈΠ΄Π΅ выраТСния-ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚Π΅Π»Ρ. Π’Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠ΅ элСмСнты с Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΠΌ [ngPluralCase] отобразятся Π² зависимости ΠΎΡ‚ Π·Π°Π΄Π°Π½Π½Ρ‹Ρ… условий:

<p [ngPlural]="components">
   <ng-template ngPluralCase="=1">1 component removed</ng-template>   
   <ng-template ngPluralCase=">1">{{components}} components removed </ng-template>   
</p>

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹Π±Ρ€ΠΎΡΠΈΡ‚ΡŒ β€œ(s)”. Π”ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Π° NgPlural ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚ вывСсти ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΡƒΡŽ словоформу Π² зависимости ΠΎΡ‚ значСния. Π˜Ρ‚ΠΎΠ³:

// if 1 component
1 component removed

// if 5 components
5 components removed

Π’Π²Π΅Π΄Π΅Π½ΠΈΠ΅ Π² AngularJS

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ AngularJS

ПослСднСС обновлСниС: 26.04.2017

AngularJS прСдставляСт собой opensource JavaScript-Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰ΠΈΠΉ шаблон MVC. БобствСнно использованиС MVC являСтся Π΅Π³ΠΎ ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· ΠΎΡ‚Π»ΠΈΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… особСнностСй.

Для описания интСрфСйса ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π΄Π΅ΠΊΠ»Π°Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅, Π° бизнСс-Π»ΠΎΠ³ΠΈΠΊΠ° ΠΎΡ‚Π΄Π΅Π»Π΅Π½Π° ΠΎΡ‚ ΠΊΠΎΠ΄Π° интСрфСйса, Ρ‡Ρ‚ΠΎ позволяСт ΡƒΠ»ΡƒΡ‡ΡˆΠΈΡ‚ΡŒ Ρ‚Π΅ΡΡ‚ΠΈΡ€ΡƒΠ΅ΠΌΠΎΡΡ‚ΡŒ ΠΈ
Ρ€Π°ΡΡˆΠΈΡ€ΡΠ΅ΠΌΠΎΡΡ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ.

Π”Ρ€ΡƒΠ³ΠΎΠΉ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ Ρ‡Π΅Ρ€Ρ‚ΠΎΠΉ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠ° являСтся двустороннСС связываниС, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰Π΅Π΅ динамичСски ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ Π² ΠΎΠ΄Π½ΠΎΠΌ мСстС интСрфСйса ΠΏΡ€ΠΈ
ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ Π΄Π°Π½Π½Ρ‹Ρ… ΠΌΠΎΠ΄Π΅Π»ΠΈ Π² Π΄Ρ€ΡƒΠ³ΠΎΠΌ. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, AngularJS синхронизируСт модСль ΠΈ прСдставлСниС.

ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, AngularJS ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Ρ‚Π°ΠΊΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ, ΠΊΠ°ΠΊ Ajax, ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ структорой DOM, анимация, ΡˆΠ°Π±Π»ΠΎΠ½Ρ‹, ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΈΠ·Π°Ρ†ΠΈΡ ΠΈ Ρ‚Π°ΠΊ Π΄Π°Π»Π΅Π΅. ΠœΠΎΡ‰ΡŒ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠ°,
Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ Π±ΠΎΠ³Π°Ρ‚ΠΎΠ³ΠΎ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»Π° Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΎΠΌ повлияла Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ своС ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π²ΠΎ всС большСм количСствС Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, являясь Π½Π° Π΄Π°Π½Π½Ρ‹ΠΉ
ΠΌΠΎΠΌΠ΅Π½Ρ‚ Π½Π°Π²Π΅Ρ€Π½ΠΎΠ΅ ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· самых популярных javascript-Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΎΠ².

ΠžΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ сайт Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠ°: http://angularjs.org/.
Π’Π°ΠΌ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½Π°ΠΉΡ‚ΠΈ сами исходныС Ρ„Π°ΠΉΠ»Ρ‹, ΠΎΠ±ΡƒΡ‡Π°ΡŽΡ‰ΠΈΠ΅ ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»Ρ‹ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΡΠΎΠΏΡ€ΠΎΠ²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»Ρ‹ ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ.

На ΠΌΠΎΠΌΠ΅Π½Ρ‚ написания Π΄Π°Π½Π½ΠΎΠ³ΠΎ руководства послСднСй вСрсиСй Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠ° Π±Ρ‹Π»Π° вСрсия 1.6.4.

Начало Ρ€Π°Π±ΠΎΡ‚Ρ‹ c AngularJS

ΠŸΠΎΡΠΌΠΎΡ‚Ρ€ΠΈΠΌ, Ρ‡Ρ‚ΠΎ ΠΆΠ΅ прСдставляСт собой AngularJS. Для этого Π½Π°ΠΌ потрСбуСтся Ρ„Π°ΠΉΠ»Ρ‹ самого Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠ°, поэтому Π·Π°Π³Ρ€ΡƒΠ·ΠΈΠΌ саму Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ ΠΏΠΎ ссылкС, ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠΉ Π²Ρ‹ΡˆΠ΅:

Π’Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ссылку Π½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ ΠΈΠ· сСти CDN ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ Google: https://ajax.googleapis.com/ajax/libs/angularjs/1.6.4/angular.min.js.

ΠŸΡ€ΠΈ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ΅ zip-ΠΏΠ°ΠΊΠ΅Ρ‚Π° ΠΌΡ‹ Π½Π°ΠΉΠ΄Π΅ΠΌ Π² Π½Π΅ΠΌ ΠΊΡ€ΠΎΠΌΠ΅ самой Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ (angular.js) Π΅Ρ‰Π΅ ряд Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΈ ΠΈΡ… ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ вСрсии:

  • angular-touch.js: прСдоставляСт ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ событий сСнсорного экрана

  • angular-animate.js: прСдоставляСт Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Π°Π½ΠΈΠΌΠ°Ρ†ΠΈΠΈ

  • angular-aria.js: прСдоставляСт ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ aria-Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΠ² (accesible rich internet application)

  • angular-mocks.js: прСдоставляСт mock-ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ для ΡŽΠ½ΠΈΡ‚-тСстирования

  • angular-route.js: обСспСчиваСт ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ

  • angular-sanitize.js: прСдоставляСт Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π» для управлСния ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ опасным ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚ΠΎΠΌ (javascript, html)

  • angular-cookies.js: обСспСчиваСт Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π» для управлСния ΠΊΡƒΠΊΠ°ΠΌΠΈ

  • angular-loader.js: ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ angularjs-скриптов

  • angular-messages.js: прСдоставляСт Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π» для Π²Ρ‹Π²ΠΎΠ΄Π° сообщСний

  • angular-resource.js: обСспСчиваСт Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с рСсурсами

  • Папка i18n: содСрТит js-Ρ„Π°ΠΉΠ»Ρ‹ для Ρ€Π°Π·Π½Ρ‹Ρ… Π»ΠΎΠΊΠ°Π»Π΅ΠΉ

Из всСх Π·Π°Π³Ρ€ΡƒΠΆΠ΅Π½Π½Ρ‹Ρ… скриптов Π² Π°Ρ€Ρ…ΠΈΠ²Π΅ нас Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΠ½Ρ‚Π΅Ρ€Π΅ΡΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€Π΅ΠΆΠ΄Π΅ всСго Ρ„Π°ΠΉΠ» angular.min.js

Π’Π΅ΠΏΠ΅Ρ€ΡŒ собствСнно создадим ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Оно Π±ΡƒΠ΄Π΅Ρ‚ стандартным HelloWorld. Код html-страницы Π±ΡƒΠ΄Π΅Ρ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ:


<!doctype html>
<html ng-app>
<head>
<meta charset="utf-8">
</head>
<body>
<label>Π’Π²Π΅Π΄ΠΈΡ‚Π΅ имя:</label>
<input type="text" ng-model="name" placeholder="Π’Π²Π΅Π΄ΠΈΡ‚Π΅ имя">

<h2>Π”ΠΎΠ±Ρ€ΠΎ ΠΏΠΎΠΆΠ°Π»ΠΎΠ²Π°Ρ‚ΡŒ {{name}}!</h2>
     
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.4/angular.min.js"></script>
</body>
</html>

ΠŸΠ΅Ρ€Π²ΠΎΠ΅, Π½Π°Π²Π΅Ρ€Π½ΠΎΠ΅, Ρ‡Ρ‚ΠΎ бросаСтся Π² Π³Π»Π°Π·Π° — это Π½ΠΎΠ²Ρ‹Π΅ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹, Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π½Ρ‹Π΅ ΠΊ стандартным Ρ‚Π΅Π³Π°ΠΌ html (Π² Π΄Π°Π½Π½ΠΎΠΌ случаС ng-app ΠΈ
ng-model). Π­Ρ‚ΠΈ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹ ΡΠ²Π»ΡΡŽΡ‚ΡΡ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Π°ΠΌΠΈ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠ° AngularJS. Благодаря ΠΈΡ… Π²ΡΡ‚Ρ€Π°ΠΈΠ²Π°Π½ΠΈΡŽ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ позволяСт Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ элСмСнтам ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ΅ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅.

ΠšΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎ Π² Π΄Π°Π½Π½ΠΎΠΌ случаС Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Π° ng-app ΠΎΠ±ΡŠΡΠ²Π»ΡΠ΅Ρ‚ элСмСнт <html> ΠΊΠΎΡ€Π½Π΅Π²Ρ‹ΠΌ для всСго прилоТСния, Π°
Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Π° ng-model ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ модСль «name», ΠΊ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π±ΡƒΠ΄Π΅Ρ‚ привязано Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ элСмСнта input. И ΠΏΡ€ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ тСкста Π² элСмСнтС input, модСль «name»
Ρ‚Π°ΠΊΠΆΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ динамичСски ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ своС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅.

Π§ΡƒΡ‚ΡŒ Π½ΠΈΠΆΠ΅ Π² элСмСнтС <h2>Π”ΠΎΠ±Ρ€ΠΎ ΠΏΠΎΠΆΠ°Π»ΠΎΠ²Π°Ρ‚ΡŒ {{name}}!</h2> выводится Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ этой ΠΌΠΎΠ΄Π΅Π»ΠΈ.

И ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ просто ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ» Π² Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π΅ ΠΈ ΠΏΡ€ΠΎΡ‚Π΅ΡΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ Ρ€Π°Π±ΠΎΡ‚Ρƒ.

Π£Π³Π»ΠΎΠ²Ρ‹Π΅ выраТСния


AngularJS связываСт Π΄Π°Π½Π½Ρ‹Π΅ с HTML с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Expressions .


ВыраТСния AngularJS

ВыраТСния AngularJS ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒ Π² Π΄Π²ΠΎΠΉΠ½Ρ‹Π΅ Ρ„ΠΈΠ³ΡƒΡ€Π½Ρ‹Π΅ скобки: {{ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ }} .

ВыраТСния AngularJS Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Π²Π½ΡƒΡ‚Ρ€ΠΈ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Ρ‹: ng-bind = " expression " .

AngularJS Ρ€Π°Π·Ρ€Π΅ΡˆΠΈΡ‚ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ ΠΈ Π²Π΅Ρ€Π½Π΅Ρ‚ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Ρ‚ΠΎΡ‡Π½ΠΎ Π² Ρ‚ΠΎΠΌ мСстС, Π³Π΄Π΅ написано Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅.

ВыраТСния AngularJS ΠΎΡ‡Π΅Π½ΡŒ ΠΏΠΎΡ…ΠΎΠΆΠΈ Π½Π° JavaScript
Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ:
Они ΠΌΠΎΠ³ΡƒΡ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ Π»ΠΈΡ‚Π΅Ρ€Π°Π»Ρ‹, ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ ΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ {{5 + 5}} ΠΈΠ»ΠΈ {{firstName + «» + lastName}}

ΠŸΡ€ΠΈΠΌΠ΅Ρ€

МоС ΠΏΠ΅Ρ€Π²ΠΎΠ΅ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅: {{5 + 5}}


ΠŸΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉ сам »

Если Π²Ρ‹ ΡƒΠ΄Π°Π»ΠΈΡ‚Π΅ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Ρƒ ng-app , HTML ΠΎΡ‚ΠΎΠ±Ρ€Π°Π·ΠΈΡ‚
Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ ΠΊΠ°ΠΊ Π΅ΡΡ‚ΡŒ, Π½Π΅ Ρ€Π΅ΡˆΠ°Ρ Π΅Π³ΠΎ:

ΠŸΡ€ΠΈΠΌΠ΅Ρ€

МоС ΠΏΠ΅Ρ€Π²ΠΎΠ΅ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅: {{5 + 5}}


ΠŸΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉ сам »

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΈΡΠ°Ρ‚ΡŒ выраТСния Π³Π΄Π΅ ΡƒΠ³ΠΎΠ΄Π½ΠΎ, AngularJS просто Ρ€Π°Π·Ρ€Π΅ΡˆΠΈΡ‚
Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ ΠΈ Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€. Π Π°Π·Ρ€Π΅ΡˆΠΈΡ‚ΡŒ AngularJS ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ свойств CSS.

Π˜Π·ΠΌΠ΅Π½ΠΈΡ‚Π΅ Ρ†Π²Π΅Ρ‚ поля Π²Π²ΠΎΠ΄Π° Π½ΠΈΠΆΠ΅, ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ² Π΅Π³ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅:

ΠŸΡ€ΠΈΠΌΠ΅Ρ€

<Π²Π²ΠΎΠ΄ ng-model = "myCol">

ΠŸΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉ сам »



НомСра AngularJS

НомСра AngularJS ΠΏΠΎΡ…ΠΎΠΆΠΈ Π½Π° Π½ΠΎΠΌΠ΅Ρ€Π° JavaScript:

Π’ΠΎΡ‚ ΠΆΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ с использованиСм ng-bind :

ΠŸΡ€ΠΈΠΌΠ΅Ρ€

Π˜Ρ‚ΠΎΠ³ΠΎ Π² Π΄ΠΎΠ»Π»Π°Ρ€Π°Ρ…:

ΠŸΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉ сам »

ИспользованиС ng-init Π½Π΅ ΠΎΡ‡Π΅Π½ΡŒ распространСно.Π’Ρ‹ ΡƒΠ·Π½Π°Π΅Ρ‚Π΅, ΠΊΠ°ΠΊ Π»ΡƒΡ‡ΡˆΠ΅ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅
Π² Π³Π»Π°Π²Π΅ ΠΎ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π°Ρ….


Π‘Ρ‚Ρ€ΠΎΠΊΠΈ AngularJS

Π‘Ρ‚Ρ€ΠΎΠΊΠΈ AngularJS ΠΏΠΎΡ…ΠΎΠΆΠΈ Π½Π° строки JavaScript:

Π’ΠΎΡ‚ ΠΆΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ с использованиСм ng-bind :

ΠŸΡ€ΠΈΠΌΠ΅Ρ€

Имя:

ΠŸΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉ сам »


ΠžΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ AngularJS

ΠžΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ AngularJS ΠΏΠΎΡ…ΠΎΠΆΠΈ Π½Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ JavaScript:

Π’ΠΎΡ‚ ΠΆΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ с использованиСм ng-bind :

ΠŸΡ€ΠΈΠΌΠ΅Ρ€

Имя:

ΠŸΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉ сам »


ΠœΠ°ΡΡΠΈΠ²Ρ‹ AngularJS

ΠœΠ°ΡΡΠΈΠ²Ρ‹ AngularJS ΠΏΠΎΡ…ΠΎΠΆΠΈ Π½Π° массивы JavaScript:

Π’ΠΎΡ‚ ΠΆΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ с использованиСм ng-bind :

ΠŸΡ€ΠΈΠΌΠ΅Ρ€

Π’Ρ€Π΅Ρ‚ΠΈΠΉ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚:

ΠŸΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉ сам »


ВыраТСния AngularJS ΠΈ выраТСния JavaScript

Как ΠΈ выраТСния JavaScript, выраТСния AngularJS ΠΌΠΎΠ³ΡƒΡ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ Π»ΠΈΡ‚Π΅Ρ€Π°Π»Ρ‹,
ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ ΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅.

Π’ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ JavaScript, выраТСния AngularJS ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ записаны Π²Π½ΡƒΡ‚Ρ€ΠΈ
HTML.

ВыраТСния AngularJS Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚
условныС выраТСния, Ρ†ΠΈΠΊΠ»Ρ‹ ΠΈ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ, Π² Ρ‚ΠΎ врСмя ΠΊΠ°ΠΊ выраТСния JavaScript Π΄Π΅Π»Π°ΡŽΡ‚.

ВыраТСния AngularJS ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Ρ‹, Π° выраТСния JavaScript — Π½Π΅Ρ‚.

Π£Π·Π½Π°ΠΉΡ‚Π΅ ΠΎ JavaScript Π² нашСм руководствС ΠΏΠΎ JavaScript.

.

AngularJS — супСргСройский JavaScript MVW Framework

БвязываниС Π΄Π°Π½Π½Ρ‹Ρ…

ΠŸΡ€ΠΈΠ²ΡΠ·ΠΊΠ° Π΄Π°Π½Π½Ρ‹Ρ… — это автоматичСский способ обновлСния прСдставлСния ΠΏΡ€ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ ΠΌΠΎΠ΄Π΅Π»ΠΈ, ΠΊΠ°ΠΊ
Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΏΡ€ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ Π²ΠΈΠ΄Π°. Π­Ρ‚ΠΎ ΠΊΡ€ΡƒΡ‚ΠΎ, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ это
ΠΈΡΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ манипуляции с DOM ΠΈΠ· списка Π²Π΅Ρ‰Π΅ΠΉ, ΠΎ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π±Π΅ΡΠΏΠΎΠΊΠΎΠΈΡ‚ΡŒΡΡ.

ΠšΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€

ΠšΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Ρ‹ — это ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Π·Π° элСмСнтами DOM.AngularJS позволяСт Π²Ρ‹Ρ€Π°Π·ΠΈΡ‚ΡŒ
ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Π² чистой Ρ‡ΠΈΡ‚Π°Π΅ΠΌΠΎΠΉ Ρ„ΠΎΡ€ΠΌΠ΅ Π±Π΅Π· ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠ³ΠΎ шаблона обновлСния DOM,
рСгистрация ΠΎΠ±Ρ€Π°Ρ‚Π½Ρ‹Ρ… Π²Ρ‹Π·ΠΎΠ²ΠΎΠ² ΠΈΠ»ΠΈ наблюдСниС Π·Π° измСнСниями ΠΌΠΎΠ΄Π΅Π»ΠΈ.

ΠžΠ±Ρ‹Ρ‡Π½Ρ‹ΠΉ JavaScript

Π’ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ Π΄Ρ€ΡƒΠ³ΠΈΡ… Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΎΠ², Π½Π΅Ρ‚ нСобходимости Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠΏΡ€ΠΈΠ΅Ρ‚Π°Ρ€Π½Ρ‹Π΅ Ρ‚ΠΈΠΏΡ‹, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ±Π΅Ρ€Π½ΡƒΡ‚ΡŒ
модСль Π² ΠΌΠ΅Ρ‚ΠΎΠ΄Π°Ρ… доступа. МодСли AngularJS — это простыС старыС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ JavaScript. Благодаря этому ваш ΠΊΠΎΠ΄ Π»Π΅Π³ΠΊΠΎ
Ρ‚Π΅ΡΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒ, ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΈ снова Π±Π΅Π· шаблонов.

Π”ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Ρ‹

Π”ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Ρ‹ — это ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Π°Ρ ΠΈ мощная функция, доступная Π² AngularJS. Π”ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Ρ‹ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚
Π²Ρ‹ ΠΈΠ·ΠΎΠ±Ρ€Π΅Ρ‚Π°Π΅Ρ‚Π΅ Π½ΠΎΠ²Ρ‹ΠΉ синтаксис HTML, спСцифичный для вашСго прилоТСния.

ΠœΠ½ΠΎΠ³ΠΎΡ€Π°Π·ΠΎΠ²Ρ‹Π΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹

ΠœΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Ρ‹ для создания ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ². ΠšΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ позволяСт ΡΠΊΡ€Ρ‹Ρ‚ΡŒ слоТныС
Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° DOM, CSS ΠΈ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅. Π­Ρ‚ΠΎ позволяСт Π²Π°ΠΌ ΡΠΎΡΡ€Π΅Π΄ΠΎΡ‚ΠΎΡ‡ΠΈΡ‚ΡŒΡΡ Π»ΠΈΠ±ΠΎ Π½Π° Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅
Π΄Π΅Π»Π°Π΅Ρ‚ ΠΈΠ»ΠΈ ΠΊΠ°ΠΊ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ выглядит ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎ.

Локализация

ВаТная Ρ‡Π°ΡΡ‚ΡŒ ΡΠ΅Ρ€ΡŒΠ΅Π·Π½Ρ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ — это локализация. Π€ΠΈΠ»ΡŒΡ‚Ρ€Ρ‹, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‰ΠΈΠ΅ языковой стандарт AngularJS, ΠΈ
Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Ρ‹ основы Π΄Π°ΡŽΡ‚ Π²Π°ΠΌ ΡΡ‚Ρ€ΠΎΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ Π±Π»ΠΎΠΊΠΈ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ вашС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ доступным Π²ΠΎ всСх
Π»ΠΎΠΊΠ°Ρ†ΠΈΠΈ.

Π“Π»ΡƒΠ±ΠΎΠΊΠΈΠ΅ ссылки

Глубинная ссылка ΠΎΡ‚Ρ€Π°ΠΆΠ°Π΅Ρ‚, Π³Π΄Π΅ находится ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ. Π­Ρ‚ΠΎ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ ΠΌΠΎΠ³Π»ΠΈ Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ Π² Π·Π°ΠΊΠ»Π°Π΄ΠΊΠΈ
ΠΈ ΠΏΠΎ элСктронной ΠΏΠΎΡ‡Ρ‚Π΅ ссылки Π½Π° мСстополоТСния Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ.ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Ρ‚ΡƒΠ΄Π° ΠΈ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡Π°ΡŽΡ‚ это автоматичСски, Π½ΠΎ
ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ AJAX ΠΏΠΎ своСй ΠΏΡ€ΠΈΡ€ΠΎΠ΄Π΅ Π½Π΅ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚. AngularJS сочСтаСт Π² сСбС прСимущСства Π³Π»ΡƒΠ±ΠΎΠΊΠΈΡ… ссылок с
ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅, ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠ΅ Π½Π°ΡΡ‚ΠΎΠ»ΡŒΠ½ΠΎΠΌΡƒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡŽ.

ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Ρ„ΠΎΡ€ΠΌΡ‹

ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Ρ„ΠΎΡ€ΠΌΡ‹ Π½Π° сторонС ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° — ваТная Ρ‡Π°ΡΡ‚ΡŒ Ρ…ΠΎΡ€ΠΎΡˆΠ΅Π³ΠΎ взаимодСйствия с ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ.
AngularJS позволяСт ΠΎΠ±ΡŠΡΠ²Π»ΡΡ‚ΡŒ ΠΏΡ€Π°Π²ΠΈΠ»Π° ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ Ρ„ΠΎΡ€ΠΌΡ‹ Π±Π΅Π· нСобходимости ΠΏΠΈΡΠ°Ρ‚ΡŒ
Код JavaScript. ΠŸΠΈΡˆΠΈΡ‚Π΅ мСньшС ΠΊΠΎΠ΄Π°, ΠΏΠ΅ΠΉΡ‚Π΅ Ρ€Π°Π½ΡŒΡˆΠ΅ ΠΏΠΈΠ²Π°.

Бвязь с сСрвСром

AngularJS прСдоставляСт встроСнныС сСрвисы ΠΏΠΎΠ²Π΅Ρ€Ρ… XHR, Π° Ρ‚Π°ΠΊΠΆΠ΅ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Π΄Ρ€ΡƒΠ³ΠΈΡ… бэкэндов.
с использованиСм сторонних Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ. ΠžΠ±Π΅Ρ‰Π°Π½ΠΈΡ Π΅Ρ‰Π΅ большС ΡƒΠΏΡ€ΠΎΡ‰Π°ΡŽΡ‚ ваш ΠΊΠΎΠ΄
обрабатывая асинхронный Π²ΠΎΠ·Π²Ρ€Π°Ρ‚ Π΄Π°Π½Π½Ρ‹Ρ….

Π˜Π½ΡŠΠ΅ΠΊΡ†ΠΈΠΈ

Π’Π½Π΅Π΄Ρ€Π΅Π½ΠΈΠ΅ зависимостСй Π² AngularJS позволяСт Π΄Π΅ΠΊΠ»Π°Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎ ΠΎΠΏΠΈΡΠ°Ρ‚ΡŒ, ΠΊΠ°ΠΊ ваш
ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΎ.Π­Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Π²Π°ΡˆΠ΅ΠΌΡƒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡŽ Π½Π΅ трСбуСтся main ()
ΠΌΠ΅Ρ‚ΠΎΠ΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ прСдставляСт собой Π½Π΅Ρ€Π°Π·Ρ€Π΅ΡˆΠΈΠΌΡ‹ΠΉ бСспорядок. Π’Π½Π΅Π΄Ρ€Π΅Π½ΠΈΠ΅ зависимостСй Ρ‚Π°ΠΊΠΆΠ΅ являСтся основой
AngularJS. Π­Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ любой ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚, Π½Π΅ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ вашим потрСбностям, ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π»Π΅Π³ΠΊΠΎ
Π·Π°ΠΌΠ΅Π½Π΅Π½Ρ‹.

ВСстируСмый

AngularJS Π±Ρ‹Π» Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½ с нуля для тСстирования. Π­Ρ‚ΠΎ поощряСт ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅-взгляд
Ρ€Π°Π·Π΄Π΅Π»Π΅Π½ΠΈΠ΅, поставляСтся Π² ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡ‚Π΅ с ΠΌΠ°ΠΊΠ΅Ρ‚Π°ΠΌΠΈ ΠΈ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ прСимущСства зависимости
ΠΈΠ½ΡŠΠ΅ΠΊΡ†ΠΈΡ.Он Ρ‚Π°ΠΊΠΆΠ΅ поставляСтся со сквозным запуском сцСнариСв, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ устраняСт Π½Π΅ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½ΠΎΡΡ‚ΡŒ тСста.
понимая Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΡŽΡŽ Ρ€Π°Π±ΠΎΡ‚Ρƒ AngularJS.

.

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

Π’Π°Ρˆ адрСс email Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½. ΠžΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ поля ΠΏΠΎΠΌΠ΅Ρ‡Π΅Π½Ρ‹ *