下面提到的从父组件更改子组件属性的方法中哪个好?
任务:
我想在加载父组件时将类'md-show'添加到父组件的弹出模式组件中
@viewchild decorator
或
document.querySelector()
答案 0 :(得分:0)
如果弹出框内只有一个11
。您可以在弹出组件中使用函数component
。很简单:)
答案 1 :(得分:0)
比使用@ViewChild
更好的方法是:
shouldAddClass
属性,并使用一个@Input
装饰器对其进行装饰。[ngClass]
的值,在ChildComponent模板中使用[class.md-show]
或shouldAddClass
将类添加到HTML元素中wasParentLoaded
的属性,并将其初始设置为false
。wasParentLoaded
与ChildComponent的shouldAddClass
@Input
属性一起使用。ngAfterViewInit
内部,您可以简单地将wasParentLoaded
更改为true
。这应该可以解决问题。
这是您推荐的Sample StackBlitz。
PS:,这将为您提供控制台上的ExpressionChangedAfterItHasBeenCheckedError
,因为我们试图在Angular执行其更改检测时更改组件上的属性。不过仅在开发模式下。