Как вызвать общий сервис с помощью генератора событий в ngOninit? - PullRequest
0 голосов
/ 03 октября 2018
               I have a leftPanel where I have a list of products.
    I want to display the data on click of product on the right panel 
    which has two child components rightPaneldetails and rightPanelGraph.
    When I am clicking the product only the html are getting displayed and not the data.
 RouterModule.forRoot([
                    { path:'details/:id', component:RightPanelDetailsComponent},
                    { path:'graph/:id', component: RightPanelGraphComponent}
                ]), 

               I want to call a shared service like 


         export class SharedService {
                selectedBusinessUnitS = new EventEmitter<Array<Object>>();
                selectedBusinessObjet = new EventEmitter<Array<Object>>()
            }
                I need to call the function getUpdatedBOs on ngOninit page load
            @RightPanelComponent
                ngOnInit() {
                    console.log("right panel details loading");
                    this.route.params.subscribe(params => {
                      this.id = params['id'];
                      console.log(this.id);
                    });
                    this.getUpdatedBOs();
                  }
                getUpdatedBOs() {
                        this._sharedService.selectedBusinessObjet.subscribe((data: Object) => {
                            this.selectedObjectDetails = data;
                }  
 @leftPanelComponent
          onBuisenessUnit(businessUnit) {
                this.resetData(businessUnit);
                this.clickFlag = 1;
                let temp: Array<object> = this.ibusinessUnits;
                temp['clickFlag'] = (this.isAnyBuSelected == false) ? undefined : this.clickFlag;
                temp['isAnyBuSelected'] = this.isAnyBuSelected;
                this.keyObjMap.clear();
                this.names = [];
                this.ibusinessUnits.forEach(ibo => {
                    if (ibo['isBUActive'] || !this.isAnyBuSelected) {
                        this.buObjectsMap.get(ibo['id']).forEach(obj => {
                            this.keyObjMap.set(obj['id'], obj);
                            this.names.push(obj);
                        });
                    }
                });
                this._sharedService.viewSelected.emit(1);
                this._sharedService.selectedBusinessUnitS.emit(temp);
            }
            Calling on left panel using [routerLink]="['details', objName.id]

Как получить данные общего сервиса при загрузке страницы при первом клике? Как позвонить в сервис общего обслуживания источника событий, когда я впервые щелкаю продукт?Как получить данные общего сервиса при загрузке страницы при первом клике? Как вызвать общую службу генератора событий, когда я впервые щелкаю продукт один раз?

1 Ответ

0 голосов
/ 03 октября 2018

Из того, что я вижу, у вас есть синтаксическая ошибка:

getUpdatedBOs() {

  this._sharedService.selectedBusinessObjet
    .subscribe((data: Object) => {
      this.selectedObjectDetails = data;
}

Вам необходимо добавить } и ):

getUpdatedBOs() {

  this._sharedService.selectedBusinessObjet
    .subscribe((data: Object) => {
      this.selectedObjectDetails = data;
    });
}
...