Ez a cikk egy tükör gépi fordítás, kérjük, kattintson ide, hogy ugorjon az eredeti cikkre.

Nézet: 11966|Válasz: 0

[Szöglet] angular2 *ngIf vs. [rejtve]

[Linket másol]
Közzétéve 2019. 05. 22. 14:02:02 | | |
Az AngularJS 1-ben, ha a DOM elemek megjelenítési állapotát szeretnéd váltani, valószínűleg az AngularJS 1 beépített parancsait fogod használni, például ng-show vagy ng-hide módot:

AngularJS 1 példa:

Az angular2-ben az új sablonszintaxis lehetővé teszi, hogy kifejezéseket kötsünk a DOM elemek bármely natív tulajdonságához. Ez a fantasztikus funkció végtelen lehetőségeket nyit meg. Az egyik az, hogy az kifejezést a natív rejtett tulajdonsághoz kötjük, ami kicsit hasonlít az ng-show-ra, és beállítja a display-t: nincs az elemre:

[rejtett] Angular2 példa (nem ajánlott):

Első pillantásra a fenti példa az AngularJS 1-ben tűnt ng-shownak. Valójában igen! fontos különbségek.

Mind ng-show, mind ng-hide irányítja a DOM elemek megjelenítési állapotát egy ng-hide nevű CSS osztályon keresztül, amely egyszerűen úgy állítja be az elemet, hogy megjelenítse a funkciót: none. A kulcs az, hogy az AngularJS 1 is bekerült az ng-hide osztályba! fontos, amely módosítja az osztály prioritását, hogy felülírja az elem megjelenítő attribútumának más stílusokból való kiosztását.

Visszatérve ehhez a példához: a display: none stílust a natív rejtett attribútumon a böngésző valósította meg. A legtöbb böngésző nem használja! Fontos, hogy a prioritását módosítsák. Ezért egy elem megjelenítési állapotának vezérlése [hidden]="expression" használatával könnyen felülírható más stílusok által. Például: ha máshol írok ilyen stílust erre az elemre, display: flex, ez elsőbbséget élvez a natív rejtett tulajdonsággal szemben (lásd itt).

Ezért általában *ngIf segítségével kapcsoljuk az elem jelenléti állapotát ugyanazon cél eléréséhez:

*ngIf példa az angular2-re (ajánlott):

Ellentétben a natív rejtett tulajdonsággal, az *ngIf az angular2-ben nem stíluskorlátozott. Akármilyen CSS-t írsz, ő biztonságban van. Ugyanakkor fontos megemlíteni, hogy a *ngIf nem irányítja az elem megjelenítési állapotát, hanem közvetlenül az elem hozzáadásával/eltávolításával éri el a megjelenítés vagy megjelenítés hatását.

Természetesen egy elem rejtett attribútumjához is hozzáadhatsz egy rejtett prioritást globális stílussal, például display: none !important, hogy ezt a hatást elérje. Kérdezheted, hogy mivel az angular csoport ismeri ezeket a problémákat, miért ne adnánk egy globális, legmagasabb prioritású rejtett stílust a keretrendszerben lévő rejtett stílushoz? A válasz az, hogy nem garantálhatjuk, hogy a globális stílusok hozzáadása minden alkalmazáshoz a legjobb választás. Mivel ez a megközelítés valójában megtöri azt a funkcionalit, amely a natív rejtett képességekre támaszkodik, a döntést a mérnökökre bízzuk.





Előző:A GitHub nyílt forráskódú licencet ad projektjeihez
Következő:Nem lehet kötni 'ngModel'-hez, mert az nem ismert tulajdonsága a 'input'nak...
Lemondás:
A Code Farmer Network által közzétett összes szoftver, programozási anyag vagy cikk kizárólag tanulási és kutatási célokra szolgál; A fenti tartalmat nem szabad kereskedelmi vagy illegális célokra használni, különben a felhasználók viselik az összes következményet. Az oldalon található információk az internetről származnak, és a szerzői jogi vitáknak semmi köze ehhez az oldalhoz. A fenti tartalmat a letöltés után 24 órán belül teljesen törölni kell a számítógépéről. Ha tetszik a program, kérjük, támogassa a valódi szoftvert, vásároljon regisztrációt, és szerezzen jobb hiteles szolgáltatásokat. Ha bármilyen jogsértés történik, kérjük, vegye fel velünk a kapcsolatot e-mailben.

Mail To:help@itsvse.com