绑定组件数据

时间:2018-07-30 10:48:52

标签: angular ngx-easy-table

我正在尝试在我的应用中使用此数据表: https://github.com/ssuperczynski/ngx-easy-table/wiki

我的问题是绑定来自api的数据,如果我手动设置数据,它将起作用。

<ngx-table [configuration]="configuration"
           [data]="data"
           [columns]="columns">
</ngx-table>
public ngOnInit(): void {
    this.callGetResources();

    // ngx-easy-table
    //this.data.push({Name: 'French', Uri: 'file:///C:.../french.csv'}); //this works
    this.configuration = ConfigService.config;
}

this.resourcesService.getResources(Config.DEFAULT_USER)
            .finally(() => {
                //console.log("Finished");
                this.resourcesTable.data = this.data; //doesn't work
            })
            .subscribe( res => {
                this.data.push(res);  //doesn't work!!!
                console.log(this.data);
            });

我试图仅在有数据时才使用* ngIf加载该组件,但它停止加载(此时仍未填充数据):

  

(loadTableComponent在我的finally块上变为true。)

另一个方向是在ngOnInit之前调用服务以获取数据ngOnChanges,但没有帮助。

在这种情况下,如何设置ngx-table组件的[data]属性? 我认为该组件的实现应使用2种方式绑定数据。同时有解决方法吗?

2 个答案:

答案 0 :(得分:0)

可能是因为前几毫秒的数据为空,所以控制台中是否存在一些错误?也许这可以解决您的问题:

 public data = []

首先创建一个空数组,从api接收数据后,一切都会正常工作...

答案 1 :(得分:0)

管道异步处理成功了

  

其中资源是可观察数组:

resources: Observable<Array<any>>;
this.resources = this.resourcesService.getResources(Config.DEFAULT_USER);