angular 模版變量、模板表達(dá)式息裸、模板語(yǔ)句

來(lái)源:segmentfault.com

  • 模型-視圖-控制器(MVC)
  • 模型-視圖-視圖模型(MVVM)
  • Angular 組件相當(dāng)于 控制器 或 視圖模型
  • Angular 模版相當(dāng)于 視圖

變量

模版輸入變量

<hero-detail *ngFor = "let hero of heroes"
             [hero] = "hero">
</hero-detail>
  • let關(guān)鍵字創(chuàng)建了一個(gè)名叫hero的模板輸入變量
  • ngFor指令每次迭代都從數(shù)組中把當(dāng)前元素賦值給hero變量
  • 可以在ngFor的宿主元素(及其子元素)中引用模板輸入變量hero

模版引用變量

  • 模板引用變量通常用來(lái)引用 模板中的某個(gè)DOM元素
  • 模板引用變量還可以用來(lái)引用Angular組件蝇更、指令 或 Web Component
  • 可以在模板中的任何地方引用模板引用變量
<button #buttonDOM></button>

{{buttonDOM}}
<button ref-buttonDOM></button>

{{buttonDOM}}
[object HTMLButtonElement]
  • 模板引用變量的值默認(rèn)是設(shè)置模板引用變量的元素
  • 模板引用變量的值也可以設(shè)置為其它內(nèi)容的引用(比如表單中引用為ngForm指令)
<form #myForm="ngForm">

</form>

表達(dá)式

插值表達(dá)式

說(shuō)明

插值表達(dá)式:在視圖模板中,{{ }}及{{ }}中的內(nèi)容呼盆。

  • {{ }}中的內(nèi)容年扩,稱為模版表達(dá)式
  • {{ }}中的內(nèi)容通常是組建類的屬性或方法
  • Angular 對(duì){{ }}中的內(nèi)容,先求值访圃,再轉(zhuǎn)成字符串

使用

<p> {{ name }} </p>
![]({{ imgUrl }})

模版表達(dá)式

說(shuō)明

模板表達(dá)式產(chǎn)生一個(gè)值厨幻。

模板表達(dá)式不支持內(nèi)容:

  • 賦值(=)
  • 操作并賦值(+=、-=、...)
  • 自增况脆、自減(++饭宾、--)
  • new 運(yùn)算符
  • 使用; 或 ,的鏈?zhǔn)奖磉_(dá)式
  • 位運(yùn)算(| 和 &)
  • 支持內(nèi)容(模版表達(dá)式運(yùn)算符):

使用

{{ 1 + 1 }}
[property] = "expression"

表達(dá)式上下文

表達(dá)式上下文 是模版中各種綁定值的來(lái)源。

表達(dá)式上下文包括(優(yōu)先級(jí)由高到低):

  • 模版輸入變量
  • 模版引用變量
  • 指令的上下文變量
  • 模版對(duì)應(yīng)組建類的實(shí)例

注意:

  • 模板表達(dá)式只能引用表達(dá)式上下文中的成員
  • 模板表達(dá)式不能引用全局命名空間中的任何東西(比如:window 格了、document看铆、console.log)

模板表達(dá)式操作符

管道操作符(|)

管道是一個(gè)簡(jiǎn)單的函數(shù),它接受一個(gè)輸入值盛末,并返回轉(zhuǎn)換結(jié)果弹惦。

  • 管道操作符會(huì)把它左側(cè)的表達(dá)式結(jié)果傳給它右側(cè)的管道函數(shù)。

安全導(dǎo)航操作符(?.)

  • 安全導(dǎo)航操作符用來(lái)保護(hù)出現(xiàn)在屬性路徑中null和undefined值悄但,保護(hù)視圖渲染器棠隐,讓它免于失敗。當(dāng)person不存在時(shí)算墨,下面代碼將報(bào)錯(cuò)宵荒,組件視圖將無(wú)法渲染。
{{person.name}}

傳統(tǒng)解決方法:

<ng-container *ngIf="person">
    {{person.name}}
</ng-container>
{{person && person.name}}

安全導(dǎo)航操作符方式:

{{person?.name}}

非空斷言操作符(!)

  • 在 TypeScript 2.0 中净嘀,可以使用--strictNullChecks標(biāo)志強(qiáng)制開啟嚴(yán)格空值檢查报咳。
  • 在嚴(yán)格空值檢查模式下,如果有未賦值的變量挖藏,或者試圖把null或undefined賦值給不允許為空的變量暑刃,類型檢查器就會(huì)拋出一個(gè)錯(cuò)誤。
  • 在嚴(yán)格空值檢查模式下膜眠,如果類型檢查器在運(yùn)行期間無(wú)法確定一個(gè)變量是否是null或undefined岩臣,也會(huì)拋出一個(gè)錯(cuò)誤。
  • 非空斷言操作符(!)用于告訴 TypeScript 的類型檢查器對(duì)特定的屬性表達(dá)式宵膨,不做 “嚴(yán)格空值檢測(cè)”架谎。
<div *ngIf="hero">
    {{hero!.name}}
</div>

語(yǔ)句

模版語(yǔ)句

說(shuō)明

模板語(yǔ)句用來(lái)響應(yīng)由綁定目標(biāo)(如 HTML 元素、組件或指令)觸發(fā)的事件辟躏。

不支持內(nèi)容:

  • 操作并賦值(+=谷扣、-=、...)
  • 自增捎琐、自減(++会涎、--)
  • new 運(yùn)算符
  • 位運(yùn)算(| 和 &)
  • 模版表達(dá)式運(yùn)算符
  • 支持內(nèi)容:

使用

(event)="statement"

語(yǔ)句上下文

語(yǔ)句上下文包括:

  • 模版的$event對(duì)象

  • 模版輸入變量

  • 模版引用變量

  • 模版對(duì)應(yīng)組件類的實(shí)例
    注意:

  • 模板語(yǔ)句只能引用語(yǔ)句上下文中的成員

  • 模板語(yǔ)句不能引用全局命名空間中的任何東西(比如:window 、document瑞凑、console.log)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末末秃,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子籽御,更是在濱河造成了極大的恐慌练慕,老刑警劉巖惰匙,帶你破解...
    沈念sama閱讀 206,723評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異贺待,居然都是意外死亡徽曲,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,485評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門麸塞,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)秃臣,“玉大人,你說(shuō)我怎么就攤上這事哪工“麓耍” “怎么了?”我有些...
    開封第一講書人閱讀 152,998評(píng)論 0 344
  • 文/不壞的土叔 我叫張陵雁比,是天一觀的道長(zhǎng)稚虎。 經(jīng)常有香客問(wèn)我,道長(zhǎng)偎捎,這世上最難降的妖魔是什么蠢终? 我笑而不...
    開封第一講書人閱讀 55,323評(píng)論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮茴她,結(jié)果婚禮上寻拂,老公的妹妹穿的比我還像新娘。我一直安慰自己丈牢,他們只是感情好祭钉,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,355評(píng)論 5 374
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著己沛,像睡著了一般慌核。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上申尼,一...
    開封第一講書人閱讀 49,079評(píng)論 1 285
  • 那天垮卓,我揣著相機(jī)與錄音,去河邊找鬼师幕。 笑死粟按,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的们衙。 我是一名探鬼主播钾怔,決...
    沈念sama閱讀 38,389評(píng)論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼碱呼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼蒙挑!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起愚臀,我...
    開封第一講書人閱讀 37,019評(píng)論 0 259
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤忆蚀,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體馋袜,經(jīng)...
    沈念sama閱讀 43,519評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡男旗,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,971評(píng)論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了欣鳖。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片察皇。...
    茶點(diǎn)故事閱讀 38,100評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖泽台,靈堂內(nèi)的尸體忽然破棺而出什荣,到底是詐尸還是另有隱情,我是刑警寧澤怀酷,帶...
    沈念sama閱讀 33,738評(píng)論 4 324
  • 正文 年R本政府宣布稻爬,位于F島的核電站,受9級(jí)特大地震影響蜕依,放射性物質(zhì)發(fā)生泄漏桅锄。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,293評(píng)論 3 307
  • 文/蒙蒙 一样眠、第九天 我趴在偏房一處隱蔽的房頂上張望友瘤。 院中可真熱鬧,春花似錦吹缔、人聲如沸商佑。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,289評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)茶没。三九已至,卻和暖如春晚碾,著一層夾襖步出監(jiān)牢的瞬間抓半,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,517評(píng)論 1 262
  • 我被黑心中介騙來(lái)泰國(guó)打工格嘁, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留笛求,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 45,547評(píng)論 2 354
  • 正文 我出身青樓糕簿,卻偏偏與公主長(zhǎng)得像探入,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子懂诗,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,834評(píng)論 2 345

推薦閱讀更多精彩內(nèi)容

  • 學(xué)習(xí)資料來(lái)自 Angular.cn 與 Angular.io蜂嗽。 模板語(yǔ)法 在線例子 在 Angular 中,組件扮...
    小鐳Ra閱讀 3,716評(píng)論 0 3
  • 前言 把《C++ Primer》[https://book.douban.com/subject/25708312...
    尤汐Yogy閱讀 9,506評(píng)論 1 51
  • 今年的中秋節(jié)和國(guó)慶節(jié)機(jī)緣地相遇了殃恒,長(zhǎng)長(zhǎng)的假期給我們創(chuàng)造了探望先生父母的好機(jī)會(huì)植旧,沒(méi)有絲毫的猶豫辱揭,及時(shí)盡孝,一家人坐飛...
    飛馳的風(fēng)閱讀 229評(píng)論 3 4
  • 為什么先秦的名字都那么奇怪?也許完沪,只是因?yàn)槿涡? 先秦時(shí)期人口稀少民風(fēng)淳樸域庇,在這樣的大環(huán)境下,起個(gè)名字單純就是為了...
    糖花兒閱讀 1,857評(píng)論 1 5