我的應用程式中有 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 并傳遞 id 但無法傳遞 searchObject 時,我都會呼叫 toggle2。
TIA。
uj5u.com熱心網友回復:
您將需要一個服務和型別主題的財產
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)
})
uj5u.com熱心網友回復:
沒有代碼將很難幫助您,但我會嘗試。
所以你正在使用 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
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/322400.html
下一篇:根據角度的資料庫值檢查復選框
