Angular學習筆記之元件之間的互動

2022-07-15 18:15:07 字數 1430 閱讀 3029

1、@input:可設定屬性

當它通過屬性繫結的形式被繫結時,值會「流入」這個屬性。

在子元件中使用,例如:@input()name:string

父元件定義賓亮,並在父元件的模板中繫結,例如:

子元件模板中:} 

子元件控制器中:@input()name:string

父元件控制器中:username = "lion"

父元件模板中:[name] = "username" (在呼叫的子元件的選擇器中繫結)

此時,資料即從父元件傳入子元件,子元件能在本身的模板中使用改「name」變數

2、@output:可觀察物件型屬性

幾乎總是返回angular 的eventemitter,當它通過事件繫結的形式被繫結時,值會「流出」這個屬性

在子元件中使用。例如:@output() arrivemessage = new eventemitter()

子元件模板中繫結乙個事件,例如按鈕的點選事件(click()),在子元件控制器中定義乙個被繫結到按鈕點選事件的事件(message())

,並在該事件中做出處理,即emit(彈射)例中的arrivemessage,在父元件的模板中繫結arrivemessage,繫結位置為子元件的選擇器位置,最後 在父元件的控制器中進行事件處理(footerarrivemessage())

例如:子元件模板:(click) = "message()"

子元件控制器:@output() arrivemessage = new eventemitter()

message()

父元件模板:(arrivemessage) = "footerarrivemessage()"

父元件控制器中:footerarrivemessage()

3、子元件與子元件之間通過中間人模式實現通訊(需要有乙個共同的父元件)

4、子元件與子元件之間通過服務來實現元件之間的通訊(沒有共同父元件)

5、父元件與子元件通過本地變數互動

在父元件的模板中使用,即在愛元件的選擇器中宣告乙個本地變數(#變數名)例如:#name,該變數名即可代表子元件,之後可在父元件模板中呼叫子元件的屬性和方法

例如:(click) = "name.屬性" 或 (click) = "name.方法"

缺陷:父子組建的連線必須全部在父元件的模板中進行,在父元件的控制器中無法訪問子元件的屬性和方法

6、父元件呼叫@viewchild()

總結:@input:在子元件中使用。資料從父元件傳遞到子元件

@output:在子元件中使用。子元件的元素事件(例如:點選事件)的處理函式發射出父元件的自定義事件,觸發自定義事件,父元件執行函式處理該自定義事件。

區域性變數實現資料互動:在父元件中使用。父元件在區域性模板中自定義乙個區域性變數,形如#····。通過區域性變數訪問子元件的公共變數和方法。侷限是只能在區域性模板中使用,不能在父元件的類中對子元件的相關變數和方法進行修改。

Angular6筆記之全域性元件

在使用 angular6 做專案的時候,元件只能在乙個模組內進行宣告,也就是說,在預設情況下,元件編寫完成後都得在某個模組先根據檔案路徑引入該元件,然後在 ngmodule 的引數 declarations 進行新增,就可以在該模組的其他元件中進行使用了,注意,只能是 該模組 中。那麼,問題來了,我...

Angular4學習筆記之管道

管道 pipes把資料作為輸入,然後轉換它,給出期望的輸出。每個應用開始的時候差不多都是一些簡單任務 獲取資料 轉換它們,然後把它們顯示給使用者。angular內建了一些管道,比如datepipe uppercasepipe lowercasepipe currencypipe和percentpip...

Angular學習筆記 三 之雙向繫結

首先,先看angular官方中對資料繫結的描述 資料繫結是一種機制,用來協調使用者可見的內容,特別是應用資料的值。雖然也可以手動從 html 中推送或拉取這些值,但是如果將這些任務轉交給繫結框架,應用就會更易於編寫 閱讀和維護。你只需宣告資料來源和目標 html 元素之間的繫結關係就可以了,框架會完...