繁体   English   中英

如何将 API 返回数据数组值从父组件传递到 Angular 中的子组件

[英]How to pass API returning data array values from Parent Component to Child Component in Angular

在这里我想传递this.bookingInfo = bookings.responseObj.txnValues;的值 this.bookingInfo数组值从父组件到我的子组件中的 bookingInfo 数组。我想将这些数据放入chartNameChartTTV.data = []; 子组件中的数组。 在这里divName将访问 html 文件am4core.create('divName', am4charts.XYChart); 不是 bookingInfo 数组。

这是我的父组件。

@Component({
      selector: 'app-dashboard',
      templateUrl: './dashboard.component.html',
      styleUrls: ['./dashboard.component.scss']
    })
    export class DashboardComponent implements OnInit{

      bookingInfo = [];
      ngOnInit() {
       this.getBookingInfo();
      }

      getBookingInfo() {
          const params = [];
          params.push({code: 'dateType', name: 'BOOKING'});
          params.push({code: 'fromDate', name: '2019-01-01'});
          params.push({code: 'toDate', name: '2019-12-31'});

          this.ServiceHandler.getTxnInfo([], params).subscribe(
            bookings => {
              this.bookingInfo = bookings.responseObj.txnValues;
              console.log(this.bookingInfo);
          });
      }
    }

这是我的子组件。

@Component({
  selector: 'app-summary-chips',
  templateUrl: './summary-chips.component.html',
  styleUrls: ['./summary-chips.component.scss']
})
export class SummaryChipsComponent implements OnInit {

  @Input() bookingInfo: [];
  ngOnInit() {

     console.log(this.bookingInfo);
  }

   createSummaryChips(  divName: string, chartDataInfo: [], chartValue: any, chartDate: any) {

    am4core.useTheme(am4themesAnimated);

    const chartNameChartTTV = am4core.create('divName', am4charts.XYChart);

    chartNameChartTTV.width = am4core.percent(100);
    chartNameChartTTV.height = am4core.percent(100);
    chartNameChartTTV.padding(0, 0, 0, 0);
    chartNameChartTTV.data = [];
   }

}

这是我的服务 class。

@Injectable({
  providedIn: 'root'
})
export class ServiceHandler {
  getTxnInfo(headers: any[], params: any[]) {
    return this.apiService.get( 'analytics-api/dashboard/txn-info', headers, params);
  }
}

但是当我尝试console.log(this.bookingInfo); 在子组件中,它显示类似未定义的错误 这是我的dashboard.component.html 文件

   <div class="l-content-wrapper c-summary-chip oh" >
          <div class="c-summary-chip__txt">Cancellations</div>
          <div id="divName" class="c-summary-chip__graph ">
          </div>
    </div>

但我希望它把这个代码块放入 summary-chips.component.html 并放入
像这样的dashboard.component.html文件

 <div class="l-content-wrapper c-summary-chip oh" style="visibility: hidden">
           <app-summary-chips></app-summary-chips>
    </div>

您只是缺少将您的 bookingInfo 从仪表板输入到 app-summary-chips 输入

在仪表板组件的 html 中:

<div class="l-content-wrapper c-summary-chip oh" style="visibility: hidden">
     <app-summary-chips [bookingInfo]='bookingInfo'></app-summary-chips>
</div>

暂无
暂无

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

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