angular 模板語法總結

2021-08-13 16:18:28 字數 1727 閱讀 2314

模板語法(模板表示式)  

一:模板表示式

1.同一標籤中 表示式中的上下文變數是由模板定義變數(let等產生)、指令的上下文變數(如果有)和元件的屬性疊加而成的。 模板變數是最優先的,其次是指令的上下文變數,最後是元件的成員,模板表示式只能引用表示式上下文中的成員。

2.一旦開始資料繫結,就不再跟 html attribute 打交道了。 這裡不是設定 attribute,而是設定 dom 元素、元件和指令的 property。

html attribute 與 dom property 的對比:

attribute 是由 html 定義的。property 是由 dom (document object model) 定義的。

少量 html attribute 和 property 之間有著 1:1 的對映,如id。

有些 html attribute 沒有對應的 property,如colspan。

有些 dom property 沒有對應的 attribute,如textcontent。

模板繫結是通過 property 和事件來工作的,而不是 attribute。attribute一旦初始化,就不會被改變,它初始化的是dom的property的值

3.資料繫結的目標是 dom 中的某些東西。 這個目標可能是(元素 | 元件 | 指令的)property、(元素 | 元件 | 指令的)事件,或(極少數情況下) attribute 名

4.屬性繫結([屬性名])   存在資料繫結  屬性就要存在信任(綁的物件為dom的proprty和指令)

檢視元素的屬性 (property) 設定為模板表示式時,就要寫模板的屬性 (property) 繫結     [property]=『元件屬性』

angular 會先去看這個屬性是否是某個已知指令,如果這個屬性是該指令元資料的inputs陣列中所列的名字,或者是帶有@input()裝飾器的屬性。 則屬性被對映為指令自己的屬性,就存在信任可以資料繫結,如果該屬性沒有匹配上已知指令或元素的屬性(property),就會報錯

在渲染檢視之前,angular 把這些插值表示式翻譯成相應的屬性繫結,字串的資料用插值表示式更具有可讀性,但是其他的一定要用屬性繫結

5.模板語句有***

刪除這個英雄會更新模型,還可能觸發其它修改,包括向遠端伺服器的查詢和儲存。 這些變更通過系統進行擴散,並最終顯示到當前以及其它檢視中(不懂,要是有那麼好,那等於區域性重新整理了,是不是在鉤子函式裡觸發更新)

6.雙向繫結

(input)="currenthero.name=$event.target.value" 第一次見input事件 輸入事件

ngmodel輸入屬性會設定該元素的值,並通過ngmodelchange的輸出屬性來監聽元素值的變化([()]的拆分)

7.模板引用變數(該變數是這個模板的全域性變數)

使用井號 (#) 來宣告引用變數(引用dom物件)取代了jq ,

指令可以修改這種行為,讓這個值引用到別處,比如它自身。 ngform指令就是這麼做的  #heroform="ngform" 引用的是ngform指令 #name='ngmodule'   

heroform實際上是乙個angular ngform 指令的引用, 因此具備了跟蹤表單中的每個控制項的值和有效性的能力,原生的元素沒有form屬性,但ngform指令有 heroform.form.valid

8.輸入輸出屬性 ( @input 和 @output )

資料繫結的右側為資料繫結的源,左側是指令或者property   指令必須被輸入輸出公開宣告

Angular 引入模板指令

基本介紹 引入模板一般都是固定的東西,比如導航欄,比如頁面的底部,每個頁面都重複寫很麻煩,不如直接定義兩個模板,引入到需要的頁面中。這個過程實際是乙個跨域的非同步請求過程。基本使用 doctype html html lang en head meta charset utf 8 title tit...

angular入門總結

學習angular已經兩周了,簡單的基本知識已經掌握,在學習的過程中遇到很多問題,和大家分享一下 1.ngmodel 資料雙向繫結,即資料在dom和元件之間是雙向傳遞的,為了實現低耦合實現資料的封裝,通常會引入自定義物件 這些物件往往是為了接受處理後端傳來的資料 在dom中通過 物件.屬性名 的方式...

angular入門總結

學習angular已經兩周了,簡單的基本知識已經掌握,在學習的過程中遇到很多問題,和大家分享一下 1.ngmodel 資料雙向繫結,即資料在dom和元件之間是雙向傳遞的,為了實現低耦合實現資料的封裝,通常會引入自定義物件 這些物件往往是為了接受處理後端傳來的資料 在dom中通過 物件.屬性名 的方式...