angular學習筆記<一>:模板與資料繫結

大喻喻發表於2019-05-09

HTML 是 Angular 模板的語言。這一節學習如何通過資料繫結來動態設定 DOM(文件物件模型)的值。

一、繫結語法

繫結的型別可以根據資料流的方向分成三類: 從資料來源到檢視、從檢視到資料來源以及雙向的從檢視到資料來源再到檢視。

資料方向 語法 繫結型別
單向(從檢視到資料來源) {{ }}、 [target]="expression"、bind-target="expression" 插值、(屬性、樣式、CSS類、Attribute)
單向(從資料來源到檢視) (target)="statement"、on-target="statement" 事件
雙向繫結 [(target)]="expression"、bindon-target="expression" 雙向

二、繫結目標

插播:property屬性值可以是各種型別的,attribute屬性值只能夠是字串。

繫結型別 目標
屬性 元素的 property、元件的 property、指令的 property
Attribute(極少數情況下) attribute(例外情況)
CSS 類 class property
樣式 style property
事件 元素的事件、元件的事件、指令的事件
雙向 事件與 property
1、屬性繫結示例

當要渲染的資料型別是字串時,沒有技術上的理由證明哪種形式更好。 但資料型別不是字串時,就必須使用屬性繫結了。

元素:<img [src]="heroImageUrl">
元件(父子元件之間通訊):<app-hero-detail [hero]="currentHero"></app-hero-detail>
指令:<div [ngClass]="{'special': isSpecial}"></div>
複製程式碼
2、Attribute繫結示例
<button [attr.aria-label]="help">help</button>
複製程式碼
3、CSS 類繫結示例
<div [class.special]="isSpecial">Special</div>
複製程式碼
4、樣式繫結示例
<button [style.color]="isSpecial ? 'red' : 'green'">
複製程式碼
5、事件繫結示例
元素:<button (click)="onSave()">Save</button>
元件(父子元件之間通訊):<app-hero-detail (deleteRequest)="deleteHero()"></app-hero-detail>
指令:<div (myClick)="clicked=$event" clickable>click me</div>
複製程式碼
6、雙向繫結
<input [(ngModel)]="name">
複製程式碼

相關文章