2017-03-21 5 views
1

親コンポーネントngOnit方法observableを使って新しいリクエストを行う前に、前のhttpリクエストのデータを保存するには?

this.statisticsService.getData().subscribe(data => 
    this.processData(data)); 

processData(data: DataWrapper) { 
    if (!isNullOrUndefined(data) && data.table.rows.length > 1) { 
    this.noDataAvailableFlag = false; 
    this._statisticsData.next(data); 
    } else { // If no data available from backend 
    console.log('no data available'); 
    this.handleNoDataAvailable(); 
    } 
} 

テンプレート

<div *ngIf="isDataAvailable" class="table-box clearfix default-style [ngClass]="backgroundColour"> 
    <div [hidden] ="!noDataAvailableFlag"> 
    <span class="no-data-message">{{'DETAILS.No_Data_Available' | translate}}</span> 
    </div> 
    <div [hidden] ="noDataAvailableFlag" detail-table [_statisticsData]="statisticsData" [maximiser]="maximiser" [queryParams]="filterService.getFullQueryParams()" 
    (onVariationClicked$)="onVariationClicked($event)"></div> 
    <div [hidden] ="noDataAvailableFlag" class="graph-holder clearfix" [ngClass]="{'opened': maximiser.isMaximised}" detail-graph 
    [_statisticsData]="statisticsData" 
    [tableVariation]="selectedVariationTitle"></div> 

子コンポーネント。

ngOnInit() { 
    this.windowWidth = window.innerWidth; 
    this._statisticsData.subscribe(data => { 
    if (!isNullOrUndefined(data)) { 
    this.processData(data); 
    } 
}); 
} 

データがない場合は、テーブルをクリアしません。以前のリクエストのデータを表に残しておきたい。私はこの回避策をどのようにすることができます示唆してください。フィルタは何のためにあるのかだ

答えて

1

:ちょうど

this._statisticsData 
    .filter(data => !isNullOrUndefined(data)) 
    .subscribe(data => { 
    this.processData(data); 
    }); 
+0

または '.filter(ブール値)' ... – Sasxa

+0

おかげ.ITが働いていました。 – Shikha

関連する問題