[英]Parent-Child Component communication
下文提到的從父組件更改子組件屬性的方法中哪一種是好的?
任務:
我想在加載父組件時將類'md-show'從父組件添加到彈出模式組件中
@viewchild decorator
要么
document.querySelector()
如果你只有一個component
彈出組件內。 您可以在彈出組件內部使用函數ngAfterViewInit
。 很簡單 :)
比使用@ViewChild
更好的方法是:
shouldAddClass
屬性,並使用@Input
裝飾器@Input
裝飾。 [ngClass]
或[class.md-show]
將類添加到HTML元素中,具體取決於shouldAddClass
的值 wasParentLoaded
的屬性,其類型為boolean,並將其初始設置為false
。 wasParentLoaded
與ChildComponent的shouldAddClass
@Input
屬性一起使用。 ngAfterViewInit
內部,您可以簡單地將wasParentLoaded
更改為true
。 這應該可以解決問題。
這是供您參考的示例StackBlitz 。
PS:這將在控制台上給您ExpressionChangedAfterItHasBeenCheckedError
,因為我們試圖在Angular執行其更改檢測時更改Component的屬性。 但是僅在開發模式下。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.