Šiame pavyzdyje naudoju "Angular" ir noriu naudoti *ngIf else
(nuo 4 versijos):
<div *ngIf="isValid">
content here ...
</div>
<div *ngIf="!isValid">
other content here...
</div>
Kaip galiu pasiekti tokį patį elgesį naudodamas ngIf else
?
Angular 4 ir 5:
naudojant else
:
<div *ngIf="isValid;else other_content">
content here ...
</div>
<ng-template #other_content>other content here...</ng-template>
taip pat galite naudoti then else
:
<div *ngIf="isValid;then content else other_content">here is ignored</div>
<ng-template #content>content here...</ng-template>
<ng-template #other_content>other content here...</ng-template>
arba vien tik then
:
<div *ngIf="isValid;then content"></div>
<ng-template #content>content here...</ng-template>
Demo :
[Plunker][1]
Detalesnė informacija:
<ng-template>
: yra "Angular" įgyvendinta <template>
žymė, kuri pagal [MDN][2]:
HTML
<šablono>
elementas yra kliento pusėje esančių turinį, kuris neturi būti atvaizduojamas įkeliant puslapį, bet gali būti vėliau gali būti instancuojamas paleidimo metu naudojant JavaScript.
"bindEmail" jis patikrins, ar el. paštas yra, ar ne. jei el. paštas yra, bus rodomas atsijungimas, jei ne, bus rodomas prisijungimas.
<li *ngIf="bindEmail;then logout else login"></li>
<ng-template #logout><li><a routerLink="/logout">Logout</a></li></ng-template>
<ng-template #login><li><a routerLink="/login">Login</a></li></ng-template>
Angular 4.0 versijoje if..else
sintaksė gana panaši į Java kalbos sąlyginių operatorių sintaksę.
Java kalboje naudojate "condition?stmnt1:stmnt2"
.
Angular 4.0 versijoje naudojate *ngIf="condition;then stmnt1 else stmnt2"
.