在Angular 5组件上使用事件bindind和ngIf

时间:2018-02-06 07:25:50

标签: angular events

我正在摸不着为这段代码做准备:

<ngx-charts-bar-vertical-stacked *ngIf="datas" #charts [scheme]="colorScheme" [results]="datas" [gradient]="gradient" [xAxis]="showXAxis"
    [yAxis]="showYAxis" [legend]="showLegend" [showXAxisLabel]="showXAxisLabel" [showYAxisLabel]="showYAxisLabel" [xAxisLabel]="xAxisLabel"
    [yAxisLabel]="yAxisLabel" (select)="onSelect($event)">
  </ngx-charts-bar-vertical-stacked>

问题是数据是异步的。因此需要* ngIf指令来等待数据填充。 * ngIf从DOM中删除组件,因此select事件永远不会触发。

数据加载到ngOninit()钩子中。

ngOnInit() {
  this.loadHisto();
}

/**
   * Load histogram with filter.
   */
  loadHisto() {
    const params = []
    params['search'] = [];
    params['search']['minDate'] = this.minDate;
    params['search']['maxDate'] = this.maxDate;
    params['search']['interval'] = this.interval;
    this.histoSubscription.add(this.elkService.findHisto(params).subscribe(datas => {
      this.datas = datas;
    }));
  }

任何解决方案?我已经尝试过在内部找到的所有解决方案,但没有任何作用

1 个答案:

答案 0 :(得分:0)

只需要像这样设置一个初始值:

datas = [];