Angular 9 - 找不到不同的支持对象 'getData()

Angular 9 - Cannot find a differ supporting object 'getData()

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

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

组件。

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

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

谢谢

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

其次,对this.service.get的调用可能没有被执行。这样做的原因是你 subscribe 我认为是 returns 和 Observable.

的 http 调用

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

export class Foo {
  nodeData: Observable<any>;

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

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

在您的模板中,您可以使用 async 管道自动 subscribeunsubscribe 到数据。

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

对于所有这些工作,我假设你的service.get方法returns一个Observable。