如何在单击按钮时将 id 和对象从一个组件传递到另一个组件的 angular 函数?



我有2个组件在我的应用程序。在一个组件的按钮点击,我想在其他组件调用一个函数。该函数接受id作为参数,并且需要一个对象。我可以使用RXJS从第一个组件发送id或对象,但不能同时发送。这两个组件是兄弟组件。下面是我的代码。

组件1:-

searchObject; 
toggle1(id:number){

this.dashboardService.sendToggleEvent(id);
}

服务:

sendToggleEvent(id:number){
this.toggleSubject.next(id);
}
getToggleEvent():Observable<any>{
return this.toggleSubject.asObservable();
}

组件2:-

constructor(){
this.toggleEventSubscription = 
this.dashboardService.getToggleEvent().subscribe((id)=>{
this.toggle2(id);
});
}
toggle2(id){
if(id == __){
api(searchObj)
}

toggle2有一个api,它需要一个名为searchObj的对象组件1。当toggle1被调用时,我调用toggle2并传递id but无法传递searchObject.

TIA。

您将需要一个服务和类型为subject的属性

service.ts 
mySub = new Subject();

componet1 
this.myService.mySub.next({id:123,data:{}})

component2
this.myService.mySub.subScribe(event=>{
this.callfn(event.id,event.data)
})

没有代码将很难帮助你,但我会尝试。

所以你在使用RXJS,我的意思是可观察的。因此,当您的第二个组件接收到id或对象时,您可以调用该函数(在订阅中)。

observable.subscribe({
next(x) { callFunction(x) },
error(err) { console.error('something wrong occurred: ' + err); },
complete() { console.log('done'); }
});

不要犹豫,看看文档:https://rxjs.dev/guide/observable

相关内容

  • 没有找到相关文章

最新更新