【发布时间】:2019-01-22 18:06:25
【问题描述】:
我有两个共享组件,我希望父组件在其子组件中调用方法
共享组件 1(父级)
@Component({
selector: 'parent',
template: `<div>
<div #parentBody>
<ng-content select="[parentBody]"></ng-content>
</div>
<button (click)=" " >tell child to dance</button>
</div>
`,
})
export class ParentComponent {
constructor() { }
}
共享组件 2(子)
@Component({
selector: 'child',
template: `<div>
<p>I'm a child component</p>
</div>
`,
})
export class ChildComponent {
dance() {
alert('dancing');
}
}
在应用组件中
<parent>
<div parentBody>
<child></child>
</div>
<parent>
在这种情况下我们如何在父子组件之间进行通信
【问题讨论】:
-
你可以使用
@ContentChild装饰器,就像@ViewChild一样。它允许你引用你的组件实例并用它做任何你想做的事情。要在子节点中有父引用,您可以在依赖注入中使用@Host装饰器。