首頁 > web前端 > js教程 > 淺談一下Angular模板引擎ng-template

淺談一下Angular模板引擎ng-template

青灯夜游
發布: 2021-07-12 17:45:09
轉載
2455 人瀏覽過

這篇文章帶大家了解一下在重構管理控制台中使用到的Angular的模板引擎ng-template,簡單介紹一下ng-template中的ng-container、ngIf,ngFor、ngClass 、ngStyle和ngSwitch。

淺談一下Angular模板引擎ng-template

模板引擎是Web應用中用來產生動態HTML的一個途徑, 負責將資料模型與HTML模板結合(即模板渲染),產生最終的HTML。編寫HTML模板的語法稱為模板語法,模板語法的表達能力和可擴展性決定了模板引擎的易用性。 【相關教學推薦:《angular教學》】

ng-template簡介

ng-template表示為Angular模板:這表示此標記的內容將包含模板的一部分,然後可以與其他模板一起組合以形成最終的元件模板。

ng-template主要包含:ng-containerngIfngForngClassngStylengSwitch

ng-container

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

ngIf 用於根據表達式的值,在指定位置渲染thenelse 模板的內容。

* `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>
登入後複製

使用else區塊

<div *ngIf="isLoggedIn; else loggedOut">
  Welcome back, friend.
</div>

<ng-template #loggedOut>
  Please friend, login.
</ng-template>
登入後複製

使用then和else區塊

<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

ngFor用於使用可迭代的每個項目作為模板的上下文來重複模板的一種方式。提供了其他可以被局部變數別名的值:

  • index - 目前專案的位置在從0開始的迭代中
  • first - 如果當前項是可迭代中的第一個項,則為true
  • last - 如果當前項是可迭代中的最後一個項,則為true
  • even - 如果目前索引為偶數,則為true
  • odd - 如果目前索引為奇數,則為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

ngClass指令更改綁定到其附加的元件或元素的class屬性。

<a
      class="favorite"
      [ngClass]="[isFavorite ? &#39;text-dark&#39; : &#39;text-gray&#39;]"
      (click)="setFavorite()"
>
      <i class="fe fe-heart font-size-21"></i>
</a>
登入後複製

ngClass第一個參數為類別名稱,第二個參數為boolean值,如果為true就新增第一個參數的類別。

ngStyle

ngStyle來修改元件或元素的style屬性。

<div class="label-color" [ngStyle]="{&#39;background-color&#39;: labels | getById:labelId:&#39;color&#39;}"></div>
// 判断添加
<div [ngStyle]="{&#39;background-color&#39;:template === &#39;dark&#39; ? &#39;dark&#39; : &#39;light&#39; }"></<div>
登入後複製

ngSwitch

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中文網其他相關文章!

相關標籤:
來源:juejin.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板