Angular-styleguide: ΠŸΡ€ΠΎΡΡ‚Ρ€Π°Π½ΡΡ‚Π²ΠΎ ΠΈΠΌΠ΅Π½ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ²

Π‘ΠΎΠ·Π΄Π°Π½Π½Ρ‹ΠΉ Π½Π° 24 Ρ„Π΅Π²Ρ€. 2016  Β·  12ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ  Β·  Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: johnpapa/angular-styleguide

Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΏΠΎΠΌΠΎΡ‰Π½ΠΈΠΊΠ° ΠΏΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°ΠΌ, доступного Π² Angular 1.5, ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ всС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π² Π²ΠΈΠ΄Π΅ Π΄Π΅Ρ€Π΅Π²Π° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ². Однако ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ всС ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ Ρ€Π΅Π³ΠΈΡΡ‚Ρ€ΠΈΡ€ΡƒΡŽΡ‚ΡΡ глобально, Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ пространство ΠΈΠΌΠ΅Π½ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ², Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ΠΎΠ² ΠΈΠΌΠ΅Π½. НС ΠΌΠΎΠ³Π»ΠΈ Π±Ρ‹ Π²Ρ‹ ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠΈΡ‚ΡŒ Ρ…ΠΎΡ€ΠΎΡˆΠΈΠΉ способ пространства ΠΈΠΌΠ΅Π½ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ²? Π’ настоящСС врСмя я ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽ Ρ‚ΠΎΡ‡ΠΊΡƒ Π² качСствС раздСлитСля ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ.

ΡƒΠ³Π»ΠΎΠ²Π°Ρ‚Ρ‹ΠΉ
.module ('app.account.details', [])
.component ('app.account.details.edit', NameComponent);

ВсС 12 ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

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

Они Π½Π΅ Ρ‚ΠΎ ΠΆΠ΅ самоС .. Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€. ΠšΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΈΠΌΠ΅ΡŽΡ‚ ΠΈΠ·ΠΎΠ»ΠΈΡ€ΠΎΠ²Π°Π½Π½ΡƒΡŽ ΠΎΠ±Π»Π°ΡΡ‚ΡŒ видимости, ΠΎΠ½ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ замСняСт Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ ссылки, Π° для bindToController ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ установлСно Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ true.

ВсС, Ρ‡Ρ‚ΠΎ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ с ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠΌ, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄ΠΎΡΡ‚ΠΈΡ‡ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Ρ‹, Π½ΠΎ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π°, ΠΏΠΎ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ сущСствуСт, состоит Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠΏΡ€ΠΎΡΡ‚ΠΈΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ Π½Π° angular 2.

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… функциях здСсь: http://www.codelord.net/2015/12/17/angulars-component-what-is-it-good-for/

Π’Π°ΠΊ Π±ΡƒΠ΄Π΅Ρ‚ Π»ΠΈ это Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΎ?

Π•ΡΡ‚ΡŒ прСдлоТСния ΠΈΠ»ΠΈ Π½Π°ΠΌΠ΅ΠΊΠΈ ΠΏΠΎ этому ΠΏΠΎΠ²ΠΎΠ΄Ρƒ?

@samithaf с использованиСм Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚Π΅Π»Π΅ΠΉ Ρ‚ΠΎΡ‡Π΅ΠΊ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΠ²Π°Π΅Ρ‚ вас, ΠΊΠΎΠ³Π΄Π° Π΄Π΅Π»ΠΎ Π΄ΠΎΡ…ΠΎΠ΄ΠΈΡ‚ Π΄ΠΎ сСлСкторов CSS.

ИспользованиС Ρ‚ΠΎΡ‡Π΅ΠΊ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΠ²Π°Ρ‚ΡŒ вас (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ ΠΈΡ… Π² сСлСкторах CSS), Π½ΠΎ это Π³Ρ€ΠΎΠΌΠΎΠ·Π΄ΠΊΠΎ ΠΈ Π½Π΅Ρ‚Ρ€Π°Π΄ΠΈΡ†ΠΈΠΎΠ½Π½ΠΎ.

Π›ΡŽΠ΄ΠΈ Π³ΠΎΠ΄Π°ΠΌΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ - для ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² пространств ΠΈΠΌΠ΅Π½, ΠΈ я Π½Π΅ Π²ΠΈΠΆΡƒ ΠΏΡ€ΠΈΡ‡ΠΈΠ½ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠ°ΠΊΠΎΠΉ-Π»ΠΈΠ±ΠΎ Π΄Ρ€ΡƒΠ³ΠΎΠΉ Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚Π΅Π»ΡŒ.

@mackelito @blowsie @gkalpak Π― ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ шаблон Π² ΠΎΡ‡Π΅Π½ΡŒ ΠΊΡ€ΡƒΠΏΠ½ΠΎΠΌ финансовом ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ (100K + LOC), ΠΈ ΠΏΠΎΠΊΠ° всС Π² порядкС. Как Π²ΠΈΠ΄ΠΈΡ‚Π΅, я ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽ Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚Π΅Π»ΠΈ Ρ‚ΠΎΡ‡Π΅ΠΊ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ всС Π±Ρ‹Π»ΠΎ согласовано. Π’ΠΏΡ€ΠΎΡ‡Π΅ΠΌ, ΠΊΡ€ΠΎΠΌΠ΅ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ΠΎΠ². Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ стилСй Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ Ρ‚ΠΎΡ‡ΠΊΠΈ.

const loginModule = angular.module('app.core.login', [])
.component('app.core.login', loginComponent)
.service('app.core.login.loginService', loginService);

@samithaf ΠΊΠ°ΠΊ Π²Ρ‹ вставляСтС сСрвисы Π² свой ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€? Π― полагаю, Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ ['app.core.login.loginService' , function(loginService) {}] ?

@blowsie ΠΏΡ€ΠΈΠΌΠ΅Ρ€ использования слуТбы Π²Ρ…ΠΎΠ΄Π° Π² систСму ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ.

class LoginController {
  constructor($q, loginService) {
    this.loginService = loginService;
  }

  /**
   * <strong i="7">@method</strong> $onInit
   * This lifecycle hook will be executed when all controllers on an element have been constructed and after their bindings are initialized
   */
  $onInit() {
    this.loginService.invalidateSession();
  }

}

LoginController.$inject = ['$q', 'nw.core.login.loginService'];

export default LoginController;

Π­Ρ‚ΠΎ ΠΎΡ‡Π΅Π½ΡŒ Ρ…ΠΎΡ€ΠΎΡˆΠΎ для сСрвисов, Π½ΠΎ для ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ странно:

<div><app.core.login></app.core.login></div>

И это нСсовмСстимо с ΠΎΠΊΡ€ΡƒΠΆΠ°ΡŽΡ‰ΠΈΠΌ ΠΌΠΈΡ€ΠΎΠΌ (всС ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ - ΠΊΠ°ΠΊ сказал @gkalpak ).

Π― ΡƒΠ²Π΅Ρ€Π΅Π½, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ @samithaf прСкрасно с этим

Основная ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° здСсь: ΠΈΠ½ΠΆΠ΅ΠΊΡ‚ΠΎΡ€ AngularJS плоский, поэтому Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΌΡ‹ΡΠ»ΠΈΡ‚ΡŒ глобально, ΠΊΠΎΠ³Π΄Π° ΠΌΡ‹ Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ модуля. Π­Ρ‚ΠΎ нСдостаток Π΄ΠΈΠ·Π°ΠΉΠ½Π°, исправлСнный Π² Angular. ИзмСнСниС основного соглашСния ( - для пространства ΠΈΠΌΠ΅Π½), ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠ³ΠΎ с самого Π½Π°Ρ‡Π°Π»Π° ΠΏΠΎΡ‡Ρ‚ΠΈ всСми, - это Π½Π΅ Π²Ρ‹Ρ…ΠΎΠ΄ ИМΠ₯О.

ΠŸΡ€ΠΈΠ²Π΅Ρ‚, @MarcLoupias, ΠΊΠ°ΠΊ Π²Ρ‹ упомянули, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΡƒΠ³Π»ΠΎΠ²ΠΎΠΉ DI плоский, ΠΌΡ‹ ΠΌΠ°Π»ΠΎ Ρ‡Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ. Но ΠΏΡ€ΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠΈ ΠΈΠΌΠ΅Π½ ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ Π±Π΅Π· пространства ΠΈΠΌΠ΅Π½ Π»Π΅Π³ΠΊΠΎ ΠΌΠΎΠ³ΡƒΡ‚ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΡƒΡ‚ΡŒ ΠΏΠΎΠ±ΠΎΡ‡Π½Ρ‹Π΅ эффСкты. ОсобСнно Π² ΠΊΡ€ΡƒΠΏΠ½ΠΎΠΌΠ°ΡΡˆΡ‚Π°Π±Π½ΠΎΠΌ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅, Π³Π΄Π΅ Ρƒ вас Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π±ΠΎΠ»Π΅Π΅ 10 scrum-ΠΊΠΎΠΌΠ°Π½Π΄. Π”Π°ΠΆΠ΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ я ΠΏΡ€ΠΈΠ΄ΡƒΠΌΠ°Π», Π½Π΅ согласуСтся с ΠΊΠΎΠ½Π²Π΅Π½Ρ†ΠΈΠ΅ΠΉ, я Π½Π΅ ΠΌΠΎΠ³Ρƒ ΠΏΡ€ΠΈΠ΄ΡƒΠΌΠ°Ρ‚ΡŒ Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ Ρ…ΠΎΡ€ΠΎΡˆΠ΅Π³ΠΎ способа Ρ€Π΅ΡˆΠΈΡ‚ΡŒ эту ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ. Π‘Ρ‹Π»ΠΎ Π±Ρ‹ Π½Π΅ΠΏΠ»ΠΎΡ…ΠΎ, Ссли Π±Ρ‹ ΠΊΠΎΠΌΠ°Π½Π΄Π° Angular автоматичСски добавляла ΠΌΠΎΠ΄ΡƒΠ»ΠΈ Π² пространство ΠΈΠΌΠ΅Π½. Но я Π½Π΅ Π΄ΡƒΠΌΠ°ΡŽ, Ρ‡Ρ‚ΠΎ это ΠΏΡ€ΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅Ρ‚ с angular 1.X;)

Но ΠΏΡ€ΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠΈ ΠΈΠΌΠ΅Π½ ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ Π±Π΅Π· пространства ΠΈΠΌΠ΅Π½ Π»Π΅Π³ΠΊΠΎ ΠΌΠΎΠ³ΡƒΡ‚ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΡƒΡ‚ΡŒ ΠΏΠΎΠ±ΠΎΡ‡Π½Ρ‹Π΅ эффСкты.

Π”Π°, Π½Π° этапС ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΈΠ½ΠΆΠ΅ΠΊΡ‚ΠΎΡ€Π° ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΈΠ½ΠΆΠ΅ΠΊΡ‚ΠΎΡ€Π° Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π΅Π·Π°ΠΌΠ΅Ρ‚Π½ΠΎ ΠΏΠ΅Ρ€Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ слуТбу, ΡƒΠΆΠ΅ ΠΎΠ±ΡŠΡΠ²Π»Π΅Π½Π½ΡƒΡŽ Π² ΠΈΠ½ΠΆΠ΅ΠΊΡ‚ΠΎΡ€Π΅, послСднСй объявлСнной.

ОсобСнно Π² ΠΊΡ€ΡƒΠΏΠ½ΠΎΠΌΠ°ΡΡˆΡ‚Π°Π±Π½ΠΎΠΌ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅, Π³Π΄Π΅ Ρƒ вас Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π±ΠΎΠ»Π΅Π΅ 10 scrum-ΠΊΠΎΠΌΠ°Π½Π΄.

Π­Ρ‚ΠΎ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ Π²Ρ€ΠΎΠ΄Π΅ 50+ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ²!

Π― Π½Π΅ ΠΌΠΎΠ³Ρƒ ΠΏΡ€ΠΈΠ΄ΡƒΠΌΠ°Ρ‚ΡŒ Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ Ρ…ΠΎΡ€ΠΎΡˆΠ΅Π³ΠΎ способа Ρ€Π΅ΡˆΠΈΡ‚ΡŒ эту ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ.

Π Π°Π·Π΄Π΅Π»ΠΈΡ‚Π΅ свой бизнСс Π½Π° нСсколько ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ? AngularJS Π½Π° самом Π΄Π΅Π»Π΅ Π½Π΅ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ для ΠΎΠ³Ρ€ΠΎΠΌΠ½Ρ‹Ρ… ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ² ΠΈΠ·-Π·Π° этого нСдостатка Π΄ΠΈΠ·Π°ΠΉΠ½Π° пространства ΠΈΠΌΠ΅Π½ ΠΈΠ½ΠΆΠ΅ΠΊΡ‚ΠΎΡ€Π°.

Π‘Ρ‹Π»Π° Π»ΠΈ эта страница ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠΉ?
0 / 5 - 0 Ρ€Π΅ΠΉΡ‚ΠΈΠ½Π³ΠΈ