繁体   English   中英

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

[英]How do I pass an id and object on click of a button from one component to another component' s function in 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 并传递 id 但无法传递 searchObject 时,我都会调用 toggle2。

TIA。

您将需要一个服务和类型主题的财产

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM