når du definerer direktiver I AngularJS, er det tre forskjellige måter å passere i variabler: ingen omfang, arvet omfang eller isolert omfang. Hvorvidt du bruker «controller as» syntaks (og jeg håper du er), må du fortsatt bestemme hvilken du skal bruke. I dette innlegget vil jeg forklare forskjellene og foreslå hvorfor du kanskje—eller kanskje ikke-vil bruke hver enkelt.

Ingen Omfang

 scope: false 

Bruk av denne typen direktivomfang er vanligvis en dårlig praksis som bør unngås. Når du velger dette alternativet, angir du at direktivet ikke har eget omfang og deler et omfang med den overordnede kontrolleren. Alt den overordnede kontrolleren muterer eller legger til omfanget vil være til stede på direktivet, og omvendt.

mitt forrige blogginnlegg viste et positivt eksempel på å brukescope: false i direktiver. I dette eksemplet brukte jeg det til å bytte UT DOM i malen på toppnivådirektivet, og alle direktivene tjente samme enkle formål (bytte superhelter) i søknaden min. Jeg trorscope: false kan være en fin måte å introdusere organisasjon og lesbarhet i en mal, men utover det kan det være en glatt skråning til spaghetti-kode som er vanskelig å forstå.

Arvet Omfang

scope: true

Arvet omfang er mye tryggere for den overordnede kontrolleren data enn ingen omfang. Som med alternativet scope: false, er alt som finnes på foreldrekontrollerens omfang til stede i direktivet. Men alt direktivet legger til omfanget, deles ikke med overordnet omfang. Dette beskytter foreldreansvarliges data samtidig som det kan deles med direktivet.

scope: true er nyttig i situasjoner der barnedirektivet tjener til å mutere data om overordnet omfang. Mens sikrere enn scope:false, bruker arvet omfang, spesielt gjentatte ganger, er en arkitektonisk lukt.

Isolert Omfang

scope: { myProperty: '='}

Isolert omfang er beste praksis av dem alle. Med dette alternativet definerer programmereren hvilke attributter som sendes til direktivet. Ingenting annet er delt mellom overordnet kontroller og direktiv.

Isolert omfang oppfordrer (og håndhever) god SPA-arkitektur og utvikling av små, fokuserte komponenter. Bruk av isolert omfang (spesielt med» controller as » – syntaksen) er et tegn på god arkitektur, og det resulterer i et direktiv som vil være enkelt å konvertere til En Vinkel 2.0-komponent.

… Så, Hvilken Bruker Jeg?

alt avhenger! I en perfekt Vinkelapplikasjon vil du bruke isolert omfang i alle dine direktiver. Men ikke alle applikasjoner er perfekte, og ikke alle regler er absolutte.

  • Bruker ingen omfang kan være nyttig å organisere maler.
  • bruke arvet omfang kan hjelpe deg refactor ingen omfang direktiver. Det er også nyttig for å administrere arkitekturer som fokuserer på å mutere data ned direktivet treet i stedet for å returnere små biter av oppdaterte data opp treet tilbake til den overordnede kontrolleren.
  • for jevn Angular 2.0 migrasjon, bør du begynne å jobbe mot bare å bruke isolert omfang i søknaden din.

Legg igjen en kommentar

Din e-postadresse vil ikke bli publisert.