Tento článek je zrcadlovým článkem o strojovém překladu, klikněte zde pro přechod na původní článek.

Pohled: 11966|Odpověď: 0

[Angular] angular2 *ngIf vs. [skrytý]

[Kopírovat odkaz]
Zveřejněno 22.05.2019 14:02:02 | | |
V AngularJS 1, pokud chcete přepínat stav zobrazení prvků DOM, pravděpodobně použijete vestavěné příkazy v AngularJS 1, jako jsou ng-show nebo ng-hide:

Příklad AngularJS 1:

V Angular2 nová šablonová syntax umožňuje vázat výrazy na jakékoli nativní vlastnosti DOM prvků. Tato naprosto úžasná funkce otevírá nekonečné možnosti. Jedním z nich je navázat výraz na nativní skrytou vlastnost, což je trochu jako ng-show, a také nastavuje zobrazovat: none pro prvek:

[skrytý] příklad angular2 (nedoporučováno):

Na první pohled se výše uvedený příklad zdá být ng-show v AngularJS 1. Ve skutečnosti ano! důležité rozdíly.

Obě složky, ng-show i ng-hide, ovládají stav zobrazení prvků DOM prostřednictvím třídy CSS nazvané ng-hide, která jednoduše nastaví prvek na zobrazení: žádné. Klíčové je, že do třídy ng-hide byl přidán AngularJS 1! důležité, což upravuje prioritu třídy tak, aby mohla přepsat přiřazení atributu zobrazení prvku z jiných stylů.

Zpět k tomuto příkladu, styl display: none na nativním skrytém atributu není implementován prohlížečem. Většina prohlížečů ho nepoužívá! Je důležité upravit jeho prioritu. Proto může být ovládání stavu zobrazení prvku pomocí [hidden]="expression" snadno neúmyslně přepsáno jinými styly. Například: pokud takový styl pro tento prvek napíšu jinde, display: flex, má to přednost před nativní skrytou vlastností (viz zde).

Z tohoto důvodu obvykle používáme *ngIf k přepnutí stavu přítomnosti prvku pro dosažení stejného cíle:

*ngIf příklad angular2 (doporučeno):

Na rozdíl od nativní skryté vlastnosti není *ngIf v angular2 stylově omezený. Ať už napíšete jakýkoli druh CSS, je v bezpečí. Je však stále nutné zmínit, že *ngIf neřídí stav zobrazení prvku, ale přímo dosahuje efektu zobrazení nebo nezobrazení přidáním nebo odstraněním prvku ze šablony.

Samozřejmě můžete také přidat skrytou prioritu k skrytému atributu prvku pomocí globálního stylu, například display: none !important, abyste tohoto efektu dosáhli. Možná se ptáte, když skupina Angular tyto problémy zná, proč prostě nepřidat globální nejvyšší prioritu skrytého stylu do skrytého ve frameworku? Odpověď je, že nemůžeme zaručit, že přidání globálních stylů je nejlepší volbou pro všechny aplikace. Protože tento přístup skutečně narušuje funkcionalitu závislou na nativních skrytých schopnostech, necháváme volbu na inženýrech.





Předchozí:GitHub přidává svým projektům open source licenci
Další:Nelze navázat na 'ngModel', protože to není známá vlastnost 'vstupu'...
Zřeknutí se:
Veškerý software, programovací materiály nebo články publikované organizací Code Farmer Network slouží pouze k učení a výzkumu; Výše uvedený obsah nesmí být používán pro komerční ani nelegální účely, jinak nesou všechny důsledky uživatelé. Informace na tomto webu pocházejí z internetu a spory o autorská práva s tímto webem nesouvisí. Musíte výše uvedený obsah ze svého počítače zcela smazat do 24 hodin od stažení. Pokud se vám program líbí, podporujte prosím originální software, kupte si registraci a získejte lepší skutečné služby. Pokud dojde k jakémukoli porušení, kontaktujte nás prosím e-mailem.

Mail To:help@itsvse.com