meghatározásakor Irányelvek AngularJS, három különböző módon adja át a változók: nincs hatálya, öröklött hatálya, vagy elszigetelt hatálya. Függetlenül attól, hogy a “vezérlő” szintaxist használja-e (és remélem is), még el kell döntenie, hogy melyiket használja. Ebben a bejegyzésben elmagyarázom a különbségeket, és azt javaslom, hogy miért érdemes—vagy nem—használni mindegyiket.

nincs hatókör

 scope: false 

Az ilyen típusú irányelv hatálya használata általában rossz gyakorlat, amelyet el kell kerülni. Ha ezt a beállítást választja, akkor azt adja meg, hogy az irányelvnek nincs saját hatóköre, és megoszt egy hatókört a szülővezérlőjével. Bármi, amit a szülővezérlő mutál vagy hozzáad a hatókörhöz, jelen lesz az irányelvben, és fordítva.

előző blogbejegyzésem pozitív példát mutatott ascope: false használatára az irányelvekben. Ebben a példában arra használtam, hogy tisztán kicseréljem a DOM-ot a legfelső szintű irányelv sablonjában, és az összes irányelv ugyanazt az egyszerű célt szolgálta (szuperhősök váltása) az alkalmazásomban. Úgy gondolom, hogy a scope: false nagyszerű módja lehet a szervezés és az olvashatóság bevezetésének egy sablonban, de ezen túlmenően a használata csúszós lejtő lehet A spagetti kódhoz, amelyet nehéz megérteni.

örökölt hatókör

scope: true

Az örökölt hatókör sokkal biztonságosabb a szülővezérlő adatai számára, mint a Nincs hatókör. Ascope: false opcióhoz hasonlóan minden, ami a szülő vezérlő hatókörében létezik, megtalálható az irányelvben. Azonban bármi, amit az irányelv hozzáad a hatályhoz, nem oszlik meg a szülő hatályával. Ez védi a szülő adatkezelő adatait, miközben lehetővé teszi azok megosztását az irányelvvel.

scope: true hasznos olyan helyzetekben, amikor a gyermek irányelv a szülő hatókör adatainak mutációját szolgálja. Bár biztonságosabb, mint a scope:false, az örökölt hatókör használata, különösen ismételten, építészeti szag.

elszigetelt hatókör

scope: { myProperty: '='}

az elszigetelt hatókör a legjobb gyakorlat mind közül. Ezzel az opcióval a programozó meghatározza, hogy mely attribútumokat adják át az irányelvnek. Semmi más nincs megosztva a szülői vezérlő és az irányelv között.

Az izolált hatókör ösztönzi (és érvényesíti) a jó SPA architektúrát és a kis, fókuszált komponensek fejlesztését. Az izolált hatókör használata (különösen a “controller as” szintaxissal) a jó architektúra jele, és olyan irányelvet eredményez, amelyet könnyű átalakítani Angular 2.0 komponenssé.

… szóval, melyiket használjam?

minden attól függ! Egy tökéletes szögletes alkalmazásban az összes irányelvében elszigetelt hatókört használna. Azonban nem minden alkalmazás tökéletes, és nem minden szabály abszolút.

  • a Nincs hatókör használata hasznos lehet A sablonok rendezéséhez.
  • az örökölt hatókör használata segíthet a hatókör nélküli Irányelvek újrafestésében. Hasznos olyan architektúrák kezelésére is, amelyek az adatok mutálására összpontosítanak az irányelvfán, ahelyett, hogy apró darab frissített adatokat küldenének vissza a fán felfelé a szülővezérlőhöz.
  • a sima Angular 2.0 áttelepítés, meg kell kezdeni a munkát, hogy csak az elszigetelt hatálya az alkalmazásban.

Vélemény, hozzászólás?

Az e-mail-címet nem tesszük közzé.