ngx-datatable, как использовать JSON из веб-API в сетке
Я пробовал ngx-datatable пример с файлом agent.json, и он работает
Затем вызвал веб-API и успешно вернул JSON.
Какой тип объекта мне нужно передать из getResults в PagedData в их примере, когда я получаю ошибку?
ОШИБКА TypeError: Невозможно прочитать свойство 'toLocaleString' из неопределенного
Правильный ли способ создания json для использования в ngx-datatable?
Образец кода:
import {Injectable} from "@angular/core";
import {Observable} from "rxjs";
import {PagedData} from "./model/paged-data";
import {Page} from "./model/page";
declare function require(arg:string): any;
//const agentData = require('../assets/data/agent.json');
import { Agent } from './model/agent';
import { Http, Response} from '@angular/http';
@Injectable()
export class MockServerResultsService {
agentData: any;
constructor(private http: Http) { }
private baseUrl = 'http://localhost:54032/api/agent/getagent?id=354';
public getResults(page: Page): Observable<PagedData<Agent>> {
this.agentData = this.http.get(this.baseUrl)
.map((response: Response) => <Agent[]> response.json())
.do(data => console.log('All: ' + JSON.stringify(data)));
return Observable.of(this.agentData)
.map(data => this.getPagedData(page));
}
private getPagedData(page: Page): PagedData<Agent> {
let pagedData = new PagedData<Agent>();
page.totalElements = this.agentData.length;
page.totalPages = page.totalElements / page.size;
let start = page.pageNumber * page.size;
let end = Math.min((start + page.size), page.totalElements);
for (let i = start; i < end; i++){
let jsonObj = this.agentData[i];
let agent = new Agent(jsonObj.name);
pagedData.data.push(agent);
}
pagedData.page = page;
return pagedData;
}
}