Angular 9 - Не удается найти другой объект поддержки 'getData () - PullRequest
0 голосов
/ 04 мая 2020

Я получаю эту ошибку, пытаясь привязать свой контроль к своим данным. Вот некоторый соответствующий код. Шаблон.

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

Компонент.

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

Все, что я нашел до сих пор, не помогает. Есть идеи, что случилось с моим кодом?

Спасибо

1 Ответ

1 голос
/ 05 мая 2020

Прежде всего, вы назначаете функцию (getData) свойству nodes. Я предполагаю , что вы хотите присвоить ему данные из getData.

Во-вторых, вызов this.service.get - это , вероятно , который не выполняется. Причиной этого является то, что вы не subscribe, чтобы, как я полагаю, HTTP-вызов, который возвращает Observable.

Чтобы это исправить, вы можете сделать следующее:

export class Foo {
  nodeData: Observable<any>;

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

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

Внутри вашего шаблона вы можете затем subscribe и unsubscribe к данным автоматически, используя async pipe.

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

Чтобы все это работало, я предположим Ваш service.get метод возвращает Observable.

...