是否可以使用ngx-datatable自动生成列?
问题描述:
我正在使用ngx-datatable
程序包,将数据(从WebAPI检索到)显示在可排序,可过滤的数据网格中。是否可以使用ngx-datatable自动生成列?
我的设置是一个Angular 4
应用程序(与Web API in .NET core
应该不重要)。
我想知道是否可以基于从Web API返回的JSON自动生成包括列的全表。 我已经在谷歌上搜索过,但似乎无法找到提供此功能的任何示例。
如果这是不可能的,你有任何其他库,这些也是非常受欢迎的。
答
据我所知,没有开箱即用的支持。但是,您当然可以扩展功能来自行支持。
此外,不建议将JSON响应精确映射到网格,因为您可能必须对前端执行一些数据操作才能使其可读,因此自动生成列和填充数据表可能会大量增加应用程序的复杂性。
我建议只是手动添加它们,或者制作一个检查属性的小脚本。扩展它可能会导致(像我所说的)不必要的复杂性,但这主要是与用例相关的。
祝你好运!
答
以基于JSON响应表的最佳方法是使用一个http.get()在你的service.ts文件:
import { Headers, Http } from '@angular/http';
import 'rxjs/add/operator/toPromise';
export class HeroService{
constructor (private http:Http){}
public getResponseData() : Promise<any> {
return this.http.get('assets/heroes.json')
.toPromise().then(response => {
return response.json();
}).catch(this.handleError);
}
在component.ts
然后文件呼叫服务方法:
ngOnInit(): void {
this.heroService.getResponseData().then((data) => {
this.rows = data;
}, (error) => {
console.log(error);
})
问题是我不知道哪列完全返回。我认为应该可以从结果中识别列类型。我只有字符串,数字和日期,所以应该很容易做到。 –