首页 > 解决方案 > 以角度 8 填充来自数据源的数据列表

问题描述

我需要oldDataSource: Array<any> = [];按数据源的值归档这个模型。

我尝试使用此代码:

ngOnInit(): void {
    this.dataSourceInit();
}

dataSourceInit(): void {
    this.dataSource = new DefaultScoreCoinDataSource(this.defaultScorService);
    this.dataSource.loadDefaultScoreCoins(1, this.pageSize, this.filters);
}

private loadDataSource(): void {
    this.dataSource.loadDefaultScoreCoins(
        this.paginator.pageIndex + 1,
        this.paginator.pageSize,
        this.filters
    );
}


ngAfterViewInit(): void {
    this.oldDataSource = this.dataSource['defualtScoreSubject'].value;
}

但它对我不起作用,它没有填充,this.oldDataSource但是当运行ngAfterViewInit直到数据源没有填充时,因为他必须去服务器并获得响应有很多时间,因此this.oldDataSource不填充值并显示 null 。

如何填写this.oldDataSource数据源值?

标签: javascriptangulartypescript

解决方案


一方面,括号中的属性访问器中的名称可能拼写错误('defualtScoreSubject' 应该是'defaultScoreSubject')。

更广泛地说,获取数据的方式对于 Angular 来说似乎是非常规的。我建议将您的数据源编写为返回 Observables 的服务。然后订阅 observable 来处理你的数据,或者使用async 管道将 observable 直接传递给模板。了解更多信息并比较这两种技术,以决定您要如何操作。


推荐阅读