[英]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.