Невозможно подписаться на наблюдаемое: свойство «_isScalar» отсутствует в типе «Подписка» - PullRequest
0 голосов
/ 27 ноября 2018

Я работаю с угловым приложением 6.У меня есть заметка, которая не позволит мне подписаться на нее.Мне нужно подписаться на него, чтобы установить для моего флага загрузки значение false, чтобы указать, что загрузка данных завершена.

Вот что я имею в виду:

Моя страница выглядит следующим образом:

<div *ngFor="let element of watermelons$ | async">
…
</div>

Арбузы $ - это наблюдаемая, которая загружается следующим образом:

ngOnInit() {
    …
    this.watermelons$ = this._watermelonService.getWatermelon(true, this._watermelonId);
    …
}

У меня также есть флаг, чтобы указать, загружаются данные арбуза или нет:

Private _loading : boolean;
…
constructor(…) {
    this._loading = true;
}

На странице у меня есть счетчик, который показывает, истинно ли _loading:

<div class="app-loading" *ngIf="_loading">
  <mat-spinner diameter=100></mat-spinner>
</div>

Я бы хотел выключить счетчик, установив для _loading значение false.Обычно я делаю это в подписке на арбуз $ так:

ngOnInit() {
    …
    this.watermelons$ = this._watermelonService.getWatermelon(true, this._watermelonId)
    .subscribe(watermelonData => {
        this._loading = false;
    });
    …
}

Но это не позволит мне подписаться.Когда я пытаюсь это сделать, я получаю следующую ошибку:

Type 'Subscription' is not assignable to type 'Observable<Object>'.
  Property '_isScalar' is missing in type ‘Subscription'.

Что это значит и как это исправить?Есть ли другой способ определить, когда данные загружаются, а затем установить для _loading значение false?

...