首页 > 解决方案 > Angular 9 - 找不到不同的支持对象'getData()

问题描述

我在尝试将我的控件绑定到其数据时遇到此错误。这是一些相关的代码。模板。

<tree-control [nodes]="getData"></tree-control>

零件。

 public getData(): Observable<Array<any>> {
        const assets: any = this.service.get('url', headers);
        return assets;
    }

到目前为止我发现的任何东西都没有帮助。知道我的代码有什么问题吗?

谢谢

标签: angular9

解决方案


首先,将函数 ( getData)分配给nodes属性。我假设您想将数据分配getData给它。

其次,调用可能this.service.get没有被执行。原因是你不这样做,我假设,是一个返回.subscribeObservable

要解决此问题,您可以执行以下操作:

export class Foo {
  nodeData: Observable<any>;

  constructor(
    private readonly service: YourService,
  ) {
    this.nodeData = this._getData();
  }

  private _getData() {
    return this.service.get(...);
  }
}

subscribe在您的模板中,您可以unsubscribe使用async管道自动获取数据。

<tree-control [nodes]="nodeData | async"></tree-control>

对于所有这些,我假设您的service.get方法返回一个 Observable。


推荐阅读