下面提到的从父组件更改子组件属性的方法是好的?
任务:
加载父组件时,我希望将类'md-show‘添加到我的弹出模式组件中。
@viewchild decorator
或
document.querySelector()
发布于 2018-10-13 15:26:04
一个比使用@ViewChild更好的方法是:
shouldAddClass中定义一个ChildComponent属性,并使用@Input装饰器来装饰它。[ngClass]或[class.md-show]在ChildComponent模板中根据shouldAddClass的值将类添加到ChildComponent元素wasParentLoaded的属性,类型为布尔值,并最初将其设置为false。shouldAddClass @Input属性的绑定wasParentLoaded。ngAfterViewInit of ParentComponent中,您可以简单地将wasParentLoaded更改为true。这应该能起作用。
这是一个供您参考的Sample StackBlitz。
PS:,这将给您控制台上的ExpressionChangedAfterItHasBeenCheckedError,因为我们试图更改组件上的一个属性,而角形正在执行它的变化检测。只是在发展模式下。
发布于 2018-10-13 14:52:59
如果在弹出组件中只有一个component。您可以在弹出组件中使用函数ngAfterViewInit。非常简单:)
https://stackoverflow.com/questions/52793705
复制相似问题