<hero-detail *ngFor = "let hero of heroes" [hero] = "hero"> </hero-detail>
let
关键字建立了一个名叫hero
的模板输入变量 ngFor
指令每次迭代都从数组中把当前元素赋值给hero
变量ngFor
的宿主元素(及其子元素)中引用模板输入变量hero
<button #buttonDOM></button> {{buttonDOM}}
<button ref-buttonDOM></button> {{buttonDOM}}
[object HTMLButtonElement]
ngForm
指令)<form #myForm="ngForm"> </form>
插值表达式:在视图模板中,{{ }}
及{{ }}
中的内容。express
{{ }}
中的内容,称为模版表达式{{ }}
中的内容一般是组建类的属性或方法{{ }}
中的内容,先求值,再转成字符串<p> {{ name }} </p>
<img src="{{ imgUrl }}">
模板表达式产生一个值。数组
模板表达式不支持内容:安全
=
)+=
、-=
、...
)++
、--
)new
运算符;
或 ,
的链式表达式|
和 &
)支持内容(模版表达式运算符):函数
|
、?.
、和 !
{{ }}
中的内容{{ 1 + 1 }}
[property] = "expression"
表达式上下文 是模版中各类绑定值的来源。code
表达式上下文包括(优先级由高到低):orm
注意:对象
window
、document
、console.log
)|
)管道是一个简单的函数,它接受一个输入值,并返回转换结果。事件
?.
)null
和undefined
值,保护视图渲染器,让它免于失败。当person
不存在时,下面代码将报错,组件视图将没法渲染。ip
{{person.name}}
传统解决方法:字符串
<ng-container *ngIf="person"> {{person.name}} </ng-container>
{{person && person.name}}
安全导航操做符方式:
{{person?.name}}
!
)--strictNullChecks
标志强制开启严格空值检查。null
或undefined
赋值给不容许为空的变量,类型检查器就会抛出一个错误。null
或undefined
,也会抛出一个错误。!
)用于告诉 TypeScript 的类型检查器对特定的属性表达式,不作 "严格空值检测"。<div *ngIf="hero"> {{hero!.name}} </div>
模板语句用来响应由绑定目标(如 HTML 元素、组件或指令)触发的事件。
不支持内容:
+=
、-=
、...
)++
、--
)new
运算符|
和 &
)支持内容:
=
);
或 ,
的链式表达式(event)="statement"
语句上下文包括:
$event
对象注意:
window
、document
、console.log
)