如何在服务类中使用组件类变量



我的服务代码是:

booking_type()
{
return this.http.get('https://booking.beglammed.com:3001/api/customer     /getAreaCategoryDetails');
}
services_detail()
{
return this.http.get('https://booking.beglammed.com:3001/api/customer/getAreaCategoryDetails');
}

我将其订阅为组件,组件代码为

ngOnInit() {
this.alldata.services_detail().subscribe( (response : Response  )=>
{
let data = response.json();
this.ServicesArea = data.data.servingAreas;
}
);
this.alldata.booking_type().subscribe( (response : Response  )=>
{
let data = response.json();
this.Bookings_detail = data.data.homeScreenData;
}
);
}

现在,我使用提取booking_id和aboret_id。现在,我需要在我想致电的下一个API中传递这些 value able_id和booking_id 。那么我该如何在服务中使用这些值,因为我在服务中调用了下一个API。

为什么不在组件中简单。

let data = response.json();
this.ServicesArea = data.data.servingAreas;
this.alldata.setServicesArea(this.ServicesArea);
}
);
this.alldata.booking_type().subscribe( (response : Response  )=>
{
let data = response.json();
this.Bookings_detail = data.data.homeScreenData;
this.alldata.setBookings_detail(this.Bookings_detail);
}

然后,在您的服务中,您有两个选项使用getter ir呼叫API调用。API看起来像this.http.get(https://booking.beglammed.com:3001/api/books/${this.getBookings_detail()}/${(this.getServicesArea()},请确保使用`作为引号而不是正常。不能像普通原因那样做stackoverflow混乱,然后使用相同的报价显示代码样式... http angular get示例

或使用MEHOD getBooks(servicesArea: any, bookings_detail: any)。如果需要在同一个呼叫中相同的值,请将您的第二个呼叫放入另一个呼叫中。

您可以使用Observable forkJoin

喜欢这个

import 'rxjs/add/operator/mergeMap';
import 'rxjs/add/observable/forkJoin';
ngOnInit() {
  Observable.forkJoin([this.alldata.services_detail(), this.alldata.booking_type()]).mergeMap((data:any[]) => {
      this.ServicesArea = data[0].data.servingAreas;
      this.Bookings_detail = data[1].data.homeScreenData;
      //Here you can do whatever you want, bevor you request SomeData4
      return this.alldata.yournewmethod(this.ServicesArea, this.Bookings_detail); // pass the values to a new service method
  }).subscribe((data) => {
      console.log(data); // your data
  });
}

最新更新