Angular 当子组件在路由器出口中时,从子组件调用父组件函数
我需要在子组件中发生事件后,通过调用父组件中的函数来更新父组件中的一些数据。 这里,我的子组件位于父级的路由器出口中 parentComponent.html:-Angular 当子组件在路由器出口中时,从子组件调用父组件函数,angular,angular7,Angular,Angular7,我需要在子组件中发生事件后,通过调用父组件中的函数来更新父组件中的一些数据。 这里,我的子组件位于父级的路由器出口中 parentComponent.html:- <div class="row"> Parent component </div> <router-outlet></router-outlet> } 现在,在子级中单击一个按钮,我需要通过从子级传递一个参数来调用函数fetchRequestsStatus(角色,用户)。我见
<div class="row">
Parent component
</div>
<router-outlet></router-outlet>
}
现在,在子级中单击一个按钮,我需要通过从子级传递一个参数来调用函数fetchRequestsStatus(角色,用户)
。我见过用于共享数据的@input@output装饰器,但这里我的子组件在路由器内部
我该怎么做呢?如果你想
这是无效的,因为您认为是子组件的子组件在运行时实际上是同级组件
我猜这是你的应用程序组件。因此,您可以在
app.service
中有一个主题,它可以是子组件的观察者,也可以是父组件的观察者。最干净的解决方案是在父组件和子组件之间创建一个共享服务,该服务包含父组件和子组件使用的主题
有关代码示例,请参阅此答案:
确保使用“根”中提供的新的
角度功能,以确保服务仅实例化一次。(singleton)看看这个,我已经创建了一个共享服务,但是如何才能得到一个可观察的函数结果?private messagesource=new BehaviorSubject();currentmessage=this.messagesource.asObservable();当前消息必须包括来自rxjs
的httprequestUse的结果。阅读iam使用真实备份应用程序,不返回假数据哈哈,在那里发布的答案不仅仅解决假数据。您正在尝试将HTTP响应从服务传递给父级吗?然后您的更改消息需要是这样的:changeMessage(r,u){this.getStatusCount(r,u).subscribe(res=>this.messageSource.next(res));}
fetchRequestsStatus(role, user) {
if (this.userRole) {
this.dashboardService.getStatusCount(role, user).subscribe(
res => {
console.log(res)
},
err => {
console.log(err)
})
}