我已经在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?
答案 0 :(得分:1)
我相信Context
是通过构造函数注入的,是服务吗?
您可以在该服务上找到一个方法,说“刷新”或类似的内容,当被触发时,它将通过一个简单的主题发出一个值。
您的“忠诚度”组件可以oninit订阅该主题,并在触发该主题时做出反应。
只要Context
服务作为所有消费者的单例使用(如一次提供),您就应该会很好。
答案 1 :(得分:0)
如果组件是父项和子项,则使用@Input
和@Output
,如果不是,则使用EventEmitter
这是解决方案https://stackoverflow.com/a/57324581/2762191