2016-09-12 4 views
1

ich eine Reihe von Cell Objekte zu einem PrimeNG Datatable Bindung:Angular2 + PrimeNG - Wie setzt man dataTable zurück, wenn sich die zugrunde liegenden Daten ändern?

.html:

<p-dataTable [value]="_cells" [responsive]="true" [globalFilter]="gb"> 
     <p-column field="id" header="id" sortable="true"></p-column> 
     <p-column field="name" header="name" sortable="true" ></p-column>   
    </p-dataTable> 

.ts:

ngOnInit() { 
     var self = this; 
     // Capture the id in the URL 
     this._route.params.subscribe(params => { 
      self._stationId= params['id']; 

      this._dataService 
       .GetAllCells(self._stationId) 
       .subscribe((data:Cell[]) => this._cells = data, 
        error => alert(error), 
        () => console.log('Retrieved cells')); 
     }); 
    } 

So fand ich die Datatable eine reset() Methode aus um den Sortier-/Filter-/Auswahlstatus zu löschen. Ich muss es aufrufen, wenn sich der URL-Parameter ändert und neue Daten geladen werden.

Aber wie kann ich Referenz Datatable und rufen Sie die reset() Methode aus dem Inneren des ngOnInit() Methode?

Antwort

8

Sie konnten die @ViewChild Anmerkung nutzen:

export class MyComponent implements OnInit { 
    @ViewChild(DataTable) dataTableComponent: DataTable; 

    // ... 

    ngOnInit() { 
     this.dataTableComponent.reset(); 
    } 
} 
+0

'Import {} Table von 'primeng/components/Datatable/Datatable';' Thank Me Later. – Arun

+1

Das funktioniert, aber es ist scheiße, dass es Filter und alles andere zu löschen scheint. – slashp

Verwandte Themen