HTML 是 Angular 模板的语言。这一节学习如何经过数据绑定来动态设置 DOM(文档对象模型)的值。html
绑定的类型能够根据数据流的方向分红三类: 从数据源到视图、从视图到数据源以及双向的从视图到数据源再到视图。express
数据方向 | 语法 | 绑定类型 |
---|---|---|
单向(从视图到数据源) | {{ }}、 [target]="expression"、bind-target="expression" | 插值、(属性、样式、CSS类、Attribute) |
单向(从数据源到视图) | (target)="statement"、on-target="statement" | 事件 |
双向绑定 | [(target)]="expression"、bindon-target="expression" | 双向 |
插播:property属性值能够是各类类型的,attribute属性值只可以是字符串。app
绑定类型 | 目标 |
---|---|
属性 | 元素的 property、组件的 property、指令的 property |
Attribute(极少数状况下) | attribute(例外状况) |
CSS 类 | class property |
样式 | style property |
事件 | 元素的事件、组件的事件、指令的事件 |
双向 | 事件与 property |
当要渲染的数据类型是字符串时,没有技术上的理由证实哪一种形式更好。 但数据类型不是字符串时,就必须使用属性绑定了。学习
元素:<img [src]="heroImageUrl">
组件(父子组件之间通信):<app-hero-detail [hero]="currentHero"></app-hero-detail>
指令:<div [ngClass]="{'special': isSpecial}"></div>
复制代码
<button [attr.aria-label]="help">help</button>
复制代码
<div [class.special]="isSpecial">Special</div>
复制代码
<button [style.color]="isSpecial ? 'red' : 'green'">
复制代码
元素:<button (click)="onSave()">Save</button>
组件(父子组件之间通信):<app-hero-detail (deleteRequest)="deleteHero()"></app-hero-detail>
指令:<div (myClick)="clicked=$event" clickable>click me</div>
复制代码
<input [(ngModel)]="name">
复制代码