Angular RxJs Observable работает как строка, но не как интерфейс или класс - PullRequest
0 голосов
/ 10 февраля 2019

Мое представление не обновляется из Observable , но обновляется из Observable .

ts file: status.component.ts

stat$: Observable<string>;

  constructor() {
    this.stat$ = new Observable(o => o.next('This is status text');
  }

файл шаблона: status.component.html

<span class="status">{{ stat$ | async }}</span>

В браузере отображается желаемый результат:

Это текст статуса

Пока все хорошо, ОДНАКО:

Вот моя (новичок) проблема при попытке использовать интерфейсили класс вместо простой строки - такой как:

ts файл: status.model.ts

export interface StatusStruct {
    id?: number;
    counter?: number;
    timestamp?: string;
    isCompleted?: boolean;
    isError?: boolean;
    statusText?: string;
}

file: status.component.ts

import { StatusStruct } from './status.model';

stSt: StatusStruct;
stat$: Observable<StatusStruct>;

  constructor() {

    this.stSt = {
      id: 1,
      counter: 1,
      isCompleted: false,
      statusText: 'This is status text'
    };

    this.stat$ = new Observable(o => o.next(this.stSt);
  }

и в моем файле шаблона: status.component.html

<span class="status">{{ stat$.statusText | async }}</span>

Не могли бы вы объяснить, почему «this.stat $» не обновляется: «this.stSt» и не отображается в представлении / браузере?Он прекрасно компилируется и отладчик браузера не показывает исключений.Спасибо.

...