在子元件或指令中使用裝飾器,以使angular知道該元件中的屬性可以從其父元件接收其值。有助於記住資料流是從子元件的角度來看的。因此,允許將資料從父元件輸入到子元件中。@input()
@input()
要在子元件類中使用裝飾器,請首先匯入,然後用來裝飾 屬性:@input()
input
@input()
import
from
'@angular/core'
;//
first
, import
input
export
class
itemdetailcomponent
在這種情況下,裝飾的特性,其具有的型別,然而,屬性可具有任何型別,例如 ,,,或。的值將來自下一部分將介紹的父元件。@input()
item
string
@input()
number
string
boolean
object
item
接下來,在子元件模板中,新增以下內容:
today's
item
: }
item]=
"currentitem"
export
class
使用的子元件或指令裝飾允許資料從孩子流出來父。@output()
乙個屬性通常應被初始化為角與元件作為值流出事件。@output()
eventemitter
此示例的特點是使用者可以在其中輸入值並單擊
引發事件的。在
eventemitter
然後將資料中繼到父元件。
首先,請確保匯入output
並且eventemitter
在子元件類中:
import
from
'@angular/core'
;
export
class
itemdetailcomponent
@output()
—裝飾器函式,將屬性標記為資料從子級到父級的一種方式
newitemevent
—的名稱@output()
eventemitter
— 的型別@output()
new eventemitter
()—告訴angular建立乙個新的事件發射器,並且它發射的資料為字串型別。該型別可以是任何型別,如number
,boolean
等。有關更多資訊eventemitter
,請參閱eventemitter api文件。
export class itemoutputcomponent
}
在孩子的模板
孩子的模板有兩個控制項。第乙個是乙個html與 模板參考變數,
#newitem
其中使用者鍵入的專案名稱。無論使用者鍵入什麼,都將儲存在
#newitem
變數中。
content_copy
add an
item: #
newitem
>
(click)=
"addnewitem(newitem.value)"
>
add to parent's list
第二個元素是
帶有事件繫結的。您知道這是事件繫結,因為等號左側的部分在括號中(click)
。
該(click)
事件繫結到addnewitem()
子元件類中的方法,無論其值#newitem
是什麼,該方法都將其作為引數。
現在,子元件具有乙個 用於將資料傳送給父元件的元件和乙個引發事件的方法。下一步是在父級中。@output()
content_copyexport
class
}
該additem()
方法採用字串形式的引數,然後將該字串推入或新增到items
陣列中。
在父母的模板
newitemevent)=
"additem($event)"
事件繫結(newitemevent)='additem($event)'
告訴angular將子級中的事件連線newitemevent
到父級中的方法additem()
,並且子級通知父級的事件將作為的引數additem()
。換句話說,這是實際移交資料的地方。在$event
包含資料的使用者型別為在子模板ui。
現在,為了檢視工作原理,將以下內容新增到父級的模板中:@output()
content_copy
該遍歷中的專案陣列。當您在子項中輸入值並單擊按鈕時,子項將發出事件,父項的方法會將值推入陣列,然後將其呈現在列表中。*ngfor
items
additem()
items
angular父子元件傳值 二
根元件中引入父子元件import from components son2 son2.component import from components father2 father2.component declarations newscomponent,son2component,father2...
Angular父子元件通過服務傳參
今天在使用ngx translate做多語言的時候遇到了乙個問題,需要在登入頁面點選按鈕,然後呼叫父元件中的乙個方法。一開始想到了 input和 output,然而由於並不是單純的父子元件關係,而是包含路由的父子元件關係,所以並不能使用 input方法和 output方法。然後去搜尋一下,發現sta...
Angular元件 父子元件通訊
angular元件間通訊 元件之間松耦合,元件之間知道的越少越好。元件4裡面點選按鈕,觸發元件5的初始化邏輯。傳統做法 在按鈕4的點選事件裡呼叫元件5的方法。緊密耦合。angular 在元件4根本不知道元件5存在的情況下實現。使用松耦合的方式在元件之間傳遞資料開發出高重用性的元件。使用輸入輸出屬性在...