kun määritellään Kulmapyörreohjeita, on olemassa kolme eri tapaa siirtää muuttujia: ei soveltamisalaa, peritty soveltamisala tai eristetty soveltamisala. Onko käytät ”ohjain” syntaksi (ja toivon, että olet), sinun täytyy vielä päättää, mitä käyttää. Tässä viestissä selitän erot ja ehdottaa, miksi saatat—tai ehkä ei—halua käyttää jokaista.

Ei soveltamisalaa

 scope: false 

tämäntyyppisen direktiivin soveltamisalan käyttäminen on yleensä huono käytäntö, jota tulisi välttää. Kun valitset tämän vaihtoehdon, määrität, että direktiivillä ei ole omaa soveltamisalaa ja että sillä on sama soveltamisala vanhemman valvojan kanssa. Kaikki, mitä vanhempi rekisterinpitäjä muuttaa tai lisää soveltamisalaan, sisältyy direktiiviin ja päinvastoin.

edellinen blogikirjoitukseni osoitti myönteisen esimerkin scope: false käyttämisestä direktiiveissä. Tässä esimerkissä käytin sitä puhtaasti vaihtaa pois DOM mallissa minun ylimmän tason direktiivin, ja kaikki direktiivit palvelivat samaa yksinkertaista tarkoitusta (vaihtaminen supersankareita) hakemuksessani. Mielestäni scope: false voi olla hyvä tapa esitellä organisaatiota ja luettavuutta sapluunassa, mutta sen lisäksi sen käyttäminen voi olla liukkautta spagettikoodiin, jota on vaikea ymmärtää.

peritty Scope

scope: true

peritty scope on paljon turvallisempi vanhemman rekisterinpitäjän tiedoille kuin ei scopea. Kuten scope: false – vaihtoehdossa, kaikki, mitä on olemassa vanhemman rekisterinpitäjän soveltamisalalla, on läsnä direktiivissä. Kaikkea, mitä direktiivillä lisätään soveltamisalaan, ei kuitenkaan jaeta emoalalle. Tämä suojaa vanhemman rekisterinpitäjän tietoja ja mahdollistaa niiden jakamisen direktiivin kanssa.

scope: true on hyödyllinen tilanteissa, joissa lapsidirektiivin tarkoituksena on muuttaa tietoja vanhemman soveltamisalasta. Vaikka scope:false turvallisempaa, perityn laajuuden käyttäminen varsinkin toistuvasti on arkkitehtoninen haju.

eristetty soveltamisala

scope: { myProperty: '='}

eristetty soveltamisala on paras käytäntö niistä kaikista. Tällä valinnalla ohjelmoija määrittelee, mitkä attribuutit siirretään direktiiviin. Mitään muuta ei jaeta emovalvojan ja direktiivin välillä.

eristetty soveltamisala edistää (ja vahvistaa) Hyvää KYLPYLÄARKKITEHTUURIA ja pienten, kohdennettujen osien kehittämistä. Isolated scope (erityisesti ”controller as” syntaksi) on merkki hyvästä arkkitehtuurista, ja se johtaa direktiivin, joka on helppo muuntaa Kulmikas 2.0 komponentti.

… joten, kumpaa käytän?

kaikki riippuu! Täydellisessä Kulmikkaassa sovelluksessa käyttäisit eristettyä soveltamisalaa kaikissa direktiiveissäsi. Kaikki sovellukset eivät kuitenkaan ole täydellisiä, eivätkä kaikki säännöt ole ehdottomia.

  • ilman laajuutta voi olla hyödyllistä järjestää malleja.
  • käyttämällä perittyä soveltamisalaa voi auttaa refactor no scope-direktiivejä. Se on hyödyllinen myös sellaisten arkkitehtuureiden hallinnassa, jotka keskittyvät muuntamaan tietoja direktiivipuusta alaspäin sen sijaan, että palauttaisivat pieniä päivitettyjä tietoja puusta takaisin pääohjaimelle.
  • sileän kulmikkaan 2.0-migraation aikaansaamiseksi sinun tulisi alkaa pyrkiä käyttämään vain yksittäistä scopea sovelluksessasi.

Vastaa

Sähköpostiosoitettasi ei julkaista.