如何访问孙子组件? 例如,我有 grandparent.component.ts , parent.component.ts 和 child.component.ts 。 child.component.ts 在其模板中有一个按钮列表。 parent.component.ts 包含 child.component.ts 。 grandparent.component.ts 包含 parent.component.ts 。我想禁用 grandparent.component.ts 中child.component.ts中的按钮。我该怎么做?
答案 0 :(得分:3)
我会用服务做这件事。该服务将:
祖父母禁用孙子控制的事件顺序为:
onInit
在您的评论中,这里有两种选择我不推荐
您可以在祖父模板中的父组件和数据绑定中使用@Input()
将值从祖父项传递到父级,并在子级和数据绑定中使用相同的机制 - @Input()
父模板 - 将父级的数据绑定属性传递给子级。
祖父母可以将值写入window
对象,因为所有组件都可以看到它。例如:window.enableControls = false
。子可以有setInterval
或Observable.interval
,每500毫秒读取一次该值并更新子控件。清除the child component is destroyed或您发生内存泄漏的时间间隔。
同样,我不会推荐任何一个选项,但它们会起作用。