0.前言
angular中的if在,一种是 *ngIf=”expression” ,一般写在html中。这篇文章主要记录*ngIf的几种用法。
1. ngIf用法
1.1可以用作显示和隐藏
HTML
<div *ngIf="isShow" > 窗前明月光 </div> <button (click)="change()">显示/隐藏</button>
TS
import { Component, OnInit } from '@angular/core'; @Component({ selector: 'app-menu', templateUrl: './menu.component.html', styleUrls: ['./menu.component.scss'] }) export class MenuComponent implements OnInit { isShow=true constructor() { } ngOnInit(): void { } change(){ this.isShow=!this.isShow } }
效果:
ngIf可以有稍微复杂的写法。比如
两个表达式判等,那么在ts中,a和b就是两个表达式或者变量。
HTML:
<div *ngIf="a==b" >
窗前明月光
</div>
<button (click)="change()">显示/隐藏</button>
TS:
export class MenuComponent implements OnInit {
a='12'
b='apple'
constructor() {
}
ngOnInit(): void {
}
}
当然,也可以改成下面的形式:
HTML:
<div *ngIf="a=='apple'" >
窗前明月光
</div>
<button (click)="change()">显示/隐藏</button>
TS:
export class MenuComponent implements OnInit {
a='12'
constructor() {
}
ngOnInit(): void {
}
}
这样通过单引号的形式把变量包含进来,可以直接判断表达式是不是等于某个字符串。
1.2可以和else搭配使用
HTML
<div *ngIf="isShow; else notShow "> 这是ture的情况 </div> <ng-template #notShow> <div> 这是false的情况 </div> </ng-template> <button (click)="change()">显示/隐藏</button>
TS
import { Component, OnInit } from '@angular/core'; @Component({ selector: 'app-menu', templateUrl: './menu.component.html', styleUrls: ['./menu.component.scss'] }) export class MenuComponent implements OnInit { isShow=true constructor() { } ngOnInit(): void { } change(){ this.isShow=!this.isShow } }
效果:
1. ngSwitch
HTML
<div> <span [ngSwitch]="status"> <p *ngSwitchCase="1"> 这是1的情况 </p> <p *ngSwitchCase="2"> 这是2的情况 </p> <p *ngSwitchCase="3"> 这是3的情况 </p> <p *ngSwitchDefault> 这是4的情况(默认) </p> </span> </div> <button (click)="change()">显示/隐藏</button>
TS
import { Component, OnInit } from '@angular/core'; @Component({ selector: 'app-menu', templateUrl: './menu.component.html', styleUrls: ['./menu.component.scss'] }) export class MenuComponent implements OnInit { status=1 constructor() { } ngOnInit(): void { } change(){ this.status++; if(this.status==5) this.status=1; } }
效果