0
데이터를 제공하는 서비스를 만들었습니다.각도 2 : 비동기 데이터 문제
When I return directly the data, it works. Like that :
return [
{
"prop1": "value1",
"prop2": "value2"
},
{
"prop1": "value3",
"prop2": "value6"
}
];
을하지만이 JSON 파일에서 그들을 얻을하려고 할 때, 그렇지 않습니다 : 내가 직접 데이터를 반환 할 때 작동
// Get Data from JSON
private _getDataFromJson(url: string) {
return this.http.get(url)
.toPromise()
.then(res => res.json())
.then(data => { return data; })
}
// I also tested that
/*return this.http.get(this._generateUrl(type, 'column-def'))
.map(res => res.json());*/
내가 그 JSON 파일 datas를 들어 사용하고 있습니다 그리드 (default colDef, colDef, floatingTopRows 및 datasource). 그게 관련이 있는지 아닌지 나는 잘 모르겠습니다. 그런
내 코드 조회 :
ngOnInit() {
this.defaultColDef = this.FakeData.getColumnDefDefault();
this.colDef = this.FakeData.getColumnDef(this.dataType);
this.floatingTopRowData = this.FakeData.getFloatingTopRows(this.dataType);
this.allOfTheData = this.FakeData.getData(this.dataType);
this.gridOptions = <GridOptions> {
onGridReady:() => {
this._populateData();
}
};
}
기타 관련 방법 :
_populateData(): void {
this.allOfTheData.then(rowData => {
this._setRowData(rowData);
this.pageSizes = this._generatePageSizes(rowData.length);
});
}
_setRowData(rowData): void {
this.allOfTheData = rowData;
this._createNewDatasource();
}
_createNewDatasource(): void {
if(!this.allOfTheData) return;
let dataSource = {
getRows: (params: any) => {
this.sortedAndFilteredData = this._sortAndFilter(params.sortModel, params.filterModel);
let rowsThisPage = this.sortedAndFilteredData.slice(params.startRow, params.endRow);
params.successCallback(rowsThisPage, this.sortedAndFilteredData.length);
}
};
this.gridOptions.api.setDatasource(dataSource);
}
편집
내 템플릿 :
<ag-grid-ng2 #agGrid [id]="id" style="width: 100%;" [style.height.px]="gridHeight" class="ag-bootstrap" (modelUpdated)="setHeight()"
[gridOptions]="gridOptions"
[defaultColDef]="defaultColDef"
[columnDefs]="colDef"
[floatingTopRowData]="floatingTopRowData"
enableColResize
enableServerSideSorting
enableServerSideFilter
suppressDragLeaveHidesColumns
suppressMultiSort
rowModelType="pagination"
[headerHeight]="headerHeight"
[rowHeight]="rowHeight"
rowSelection="multiple"
(dragStopped)="_onColumnMoved()"
(selectionChanged)="_onSelectionChanged()">
미리 감사드립니다.
'foo' 또는'food'을? 누군가는 배가 고프다 .-) – AngularChef
고맙습니다. error_handler.js : 50 예외 : 캐치 (약속 있음) : 오류 : ./myComponent 클래스의 오류 MyComponent - 인라인 템플릿 : 0 : 0 원인 : 'forEach'속성을 읽을 수 없습니다. 정의되지 않음 오류 : ./MyComponent 클래스의 오류 MyComponent - 인라인 템플릿 : 0 : 0 원인 : 정의되지 않은 'forEach'속성을 읽을 수 없습니다. – user1386869
자세한 구현 정보를 제공 할 수 있습니까? 제공 한 코드 스 니펫이 실제로이 방법을 사용하는 방법을 표시하지 않습니다. 또한, 어쩌면 당신이 제공 할 수있는 모든 HTML/템플릿 코드. – Dmase05