## 什么是結構型指令?
```
結構型指令的職責是 HTML 布局。 它們塑造或重塑 DOM 的結構,比如添加、移除或維護這些元素,說白了就是對DOM元素的操作。
```
像其它指令一樣,你可以把結構型指令應用到一個DOM元素上。 然后它就可以對DOM元素及其子元素做點什么。
>[danger] 在一個元素上可以使用多個屬性型指令,但只能使用一個結構型指令
## 一、\*ngIf
```
<div *ngIf="isActive;else elseBlock">變量true時顯示</div>
<ng-template #elseBlock><div class="false">變量為false顯示</div></ng-template>
```
## 二、\*ngFor
```
<li *ngFor="let item of arrayList; let key = index">
{{key}}:{{item}}
</li>
```
## 三、\[ngSwitch\]
```
<div [ngSwitch]="htmltags">
<div *ngSwitchCase="'div'">div標簽</div>
<span *ngSwitchCase="'span'">span標簽</span>
<p *ngSwitchCase="'p'">p標簽</p>
<a *ngSwitchDefault>a標簽</a>
</div>
```
## 四、ng-container
>[info] ng-container標簽作為結構性指令的宿主元素不會被渲染在頁面中
```
// ng-container標簽不會被渲染在頁面中
<ng-container *ngIf="htmltags">
<div> and saw I waved</div>
</ng-container>
```
- 目錄結構
- 架構
- 指令
- 數據綁定
- 結構性指令
- 屬性型指令
- 自定義指令
- 模板引用變量
- 屬性綁定
- 事件綁定
- 組件
- 組件交互
- 管道
- 自定義管道
- 動態組件
- 變量檢測機制
- 組件生命周期
- 路由
- 路由配置
- 路由導航
- 路由傳值
- 父子路由
- 路由事件
- 頂級路由和特征路由
- 多重路由
- 路由守衛
- 路由守衛-簡單理解
- 路由惰性加載
- 路由預加載
- 路由動畫
- 網絡請求
- GET請求
- POST請求
- JSOP請求
- 封裝的http請求
- http攔截器
- 表單
- 響應式表單
- 驅動式表單
- CLI命令
- 啟動應用
- 創建項目
- 創建組件
- 創建服務
- 創建路由守衛
- 創建特征模塊
- 創建自定義指令
- 創建自定義管道
- 相關概念
- 急性加載
- 惰性加載
- 特征模塊
- 常見問題
- 全局的Angular CLI大于本地的Angular CLI
- 包體優化