這篇文章帶大家了解一下在重構管理控制台中使用到的Angular的模板引擎ng-template,簡單介紹一下ng-template中的ng-container、ngIf,ngFor、ngClass 、ngStyle和ngSwitch。
模板引擎是Web應用中用來產生動態HTML的一個途徑, 負責將資料模型與HTML模板結合(即模板渲染),產生最終的HTML。編寫HTML模板的語法稱為模板語法,模板語法的表達能力和可擴展性決定了模板引擎的易用性。 【相關教學推薦:《angular教學》】
ng-template
表示為Angular
模板:這表示此標記的內容將包含模板的一部分,然後可以與其他模板一起組合以形成最終的元件模板。
ng-template
主要包含:ng-container
、ngIf
,ngFor
、ngClass
、ngStyle
和ngSwitch
。
ng-container
是一個邏輯容器,是Angular
結構型指令中的一種,用於包含控制內部元素的顯示與否。
ng-container
可以包含任何元素,包括文本,但本身不會產生元素標籤,也不會影響頁面樣式和佈局。包含的內容,如果不透過其他指令控制,會直接渲染到頁面中。
<div> <ng-container> <p>This is paragraph 1.</p> <p>This is paragraph 2.</p> </ng-container> </div>
<div> <p>This is paragraph 1.</p> <p>This is paragraph 2.</p> </div>
ngIf
用於根據表達式的值,在指定位置渲染then
或else
模板的內容。
* `then` 模板除非绑定到不同的值,否则默认是 ngIf 指令关联的内联模板。 * `else` 模板除非绑定对应的值,否则默认是 null。复制代码
<div *ngIf="!isLoggedIn"> Please login, friend. </div> <!-- logic && operator --> <div *ngIf="isLoggedIn && !isNewUser"> Welcome back, friend. </div> <!-- logic OR operator --> <div *ngIf="isLoggedIn || isNewUser"> Welcome! </div>
<div *ngIf="isLoggedIn; else loggedOut"> Welcome back, friend. </div> <ng-template #loggedOut> Please friend, login. </ng-template>
<ng-container *ngIf="isLoggedIn; then loggedIn; else loggedOut"></ng-container> <ng-template #loggedIn> <div> Welcome back, friend. </div> </ng-template> <ng-template #loggedOut> <div> Please friend, login. </div> </ng-template>
ngFor
用於使用可迭代的每個項目作為模板的上下文來重複模板的一種方式。提供了其他可以被局部變數別名的值:
index
- 目前專案的位置在從0開始的迭代中first
- 如果當前項是可迭代中的第一個項,則為truelast
- 如果當前項是可迭代中的最後一個項,則為trueeven
- 如果目前索引為偶數,則為trueodd
- 如果目前索引為奇數,則為true<mat-list-item *ngFor="let event of events"> <h3 matLine>{{event.title}}</h3> <p matLine class="secondary-text">{{event.detail}}</p> </mat-list-item>
ngClass
指令更改綁定到其附加的元件或元素的class屬性。
<a class="favorite" [ngClass]="[isFavorite ? 'text-dark' : 'text-gray']" (click)="setFavorite()" > <i class="fe fe-heart font-size-21"></i> </a>
ngClass
第一個參數為類別名稱,第二個參數為boolean值,如果為true就新增第一個參數的類別。
ngStyle
來修改元件或元素的style屬性。
<div class="label-color" [ngStyle]="{'background-color': labels | getById:labelId:'color'}"></div> // 判断添加 <div [ngStyle]="{'background-color':template === 'dark' ? 'dark' : 'light' }"></<div>
ng-switch
根據表達式的值顯示或這隱藏對應部分。
ng-switch-when
- 對應條件選項,如果符合選取選擇顯示,其他為符合的則移除。
ng-switch-default
- 設定預設選項,如果都沒有符合的情況,預設選項會顯示。
<div ng-switch="表达式/变量"> <div ng-switch-when="value"></div> <div ng-switch-when="value"></div> <div ng-switch-when="value"></div> <div ng-switch-default></div> </div
更多程式相關知識,請造訪:程式設計影片! !
以上是淺談一下Angular模板引擎ng-template的詳細內容。更多資訊請關注PHP中文網其他相關文章!