首页 > 解决方案 > Angular RxJs Observable 可用作字符串,但不能用作接口或类

问题描述

我的视图没有从 Observable<class> 更新,而是从 Observable<string> 更新。

ts 文件: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;
}

文件: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”更新并且没有显示在视图/浏览器中?它编译得很好,浏览器调试器没有显示异常。谢谢你。

标签: angulartypescriptrxjsobservable

解决方案


推荐阅读