如何在Angular 8中调用另一个组件的方法

时间:2019-08-02 07:26:31

标签: angular angular7

enter image description here

我已经在Image中解释了这种情况。

我有一个 LayoutComponent
其中有1) LeftMenuComponent 和2)路由器出口 LeftMenuComponent 旁边,我有 LoyaltyComponent ,它来自 Shared Folder

  

我想从任何组件调用LoyaltyComponent ngOnInit方法   在RouterOutlet内部。

请注意:LoyaltyComponent位于共享文件夹中,而OrderListComponent位于订单文件夹中。

有什么方法可以调用跨组件方法,或者我需要从OrderList Component刷新LoyaltyComponent。

我尝试过:

=

但这给了我不确定的声音。

@ViewChild('Loyalty') private loyaltyComponenet : Loyalty;

LoyaltyComponent.ts

Also from using behaviourSubject, can I directly call ngOnInit of LoyaltyComponent?

2 个答案:

答案 0 :(得分:1)

我相信Context是通过构造函数注入的,是服务吗?

您可以在该服务上找到一个方法,说“刷新”或类似的内容,当被触发时,它将通过一个简单的主题发出一个值。

您的“忠诚度”组件可以oninit订阅该主题,并在触发该主题时做出反应。

只要Context服务作为所有消费者的单例使用(如一次提供),您就应该会很好。

答案 1 :(得分:0)

如果组件是父项和子项,则使用@Input@Output,如果不是,则使用EventEmitter 这是解决方案https://stackoverflow.com/a/57324581/2762191

相关问题