Při definování směrnic v AngularJS, existují tři různé způsoby, jak předat proměnné: ne rozsah, zdědil působnosti, nebo izolované působnosti. Ať už používáte syntaxi“ řadič jako “ (a doufám, že jste), stále se musíte rozhodnout, který z nich použít. V tomto příspěvku, vysvětlím rozdíly a navrhnu, proč byste mohli—nebo možná ne—chtít použít každý z nich.

No Scope

 scope: false 

použití tohoto typu směrnice scope je obvykle špatnou praxí, které je třeba se vyhnout. Když zvolíte tuto možnost, uvedete, že vaše směrnice nemá vlastní oblast působnosti a sdílí oblast působnosti se svým mateřským správcem. Ve směrnici bude přítomno vše, co mateřský řadič zmutuje nebo přidá do rozsahu, a naopak.

můj předchozí blogový příspěvek ukázal pozitivní příklad použití scope: false ve směrnicích. V tomto příkladu jsem použil to čistě vyměnit DOM v šabloně z mých top úrovni směrnice, a všech směrnic sloužících stejný jednoduchý účel (přepínání superhrdinové) v mé žádosti. Myslím, že scope: false může být skvělý způsob, jak představit organizace a čitelnost v šabloně, ale za to, že jeho použití může být kluzký svah na špagety kód, který je obtížné pochopit.

zděděný rozsah

scope: true

zděděný rozsah je pro data vašeho nadřazeného řadiče mnohem bezpečnější než žádný rozsah. Stejně jako u volby scope: false je ve směrnici přítomno vše, co existuje v rozsahu nadřazeného řadiče. Nic, co směrnice přidává do oblasti působnosti, však není sdíleno s mateřskou oblastí působnosti. To chrání data nadřazeného správce a zároveň umožňuje jejich sdílení se směrnicí.

scope: true je užitečné v situacích, kdy dítě směrnice slouží mutuje údaje o mateřské rozsahu. Zatímco bezpečnější než scope:false, použití zděděného rozsahu, zejména opakovaně, je architektonický zápach.

izolovaný rozsah

scope: { myProperty: '='}

izolovaný rozsah je nejlepší praxí všech. Pomocí této možnosti programátor definuje, které atributy jsou předány směrnici. Nic jiného není sdíleno mezi nadřazeným řadičem a směrnicí.

izolovaný rozsah podporuje (a prosazuje) dobrou lázeňskou architekturu a vývoj malých, zaměřených komponent. Pomocí izolované působnosti (zejména s „jako správce“ syntaxe) je známkou dobré architektury, a to má za následek směrnice, které budou snadno převést na Úhlové 2.0 component.

… Takže, které mám použít?

vše záleží! V dokonalé Úhlové aplikaci byste ve všech svých směrnicích použili izolovaný rozsah. Ne všechny aplikace jsou však dokonalé a ne všechna pravidla jsou absolutní.

  • použití no scope může být užitečné pro uspořádání šablon.
  • použití zděděného rozsahu vám může pomoci refaktorovat žádné směrnice o rozsahu. Je také užitečný pro správu architektur, které se zaměřují na mutaci dat ve stromu direktiv, spíše než na vrácení malých kusů aktualizovaných dat do stromu zpět do nadřazeného řadiče.
  • pro plynulou migraci Angular 2.0 byste měli začít pracovat pouze na použití izolovaného rozsahu ve vaší aplikaci.

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna.