Angular 如何在HTML中绑定可观察的单个类对象

Angular 如何在HTML中绑定可观察的单个类对象,angular,timer,binding,observable,Angular,Timer,Binding,Observable,我正在使用Angular4。我的打字脚本文件中有一个Windows定时器 this.dynamicTime = new Observable<string>((observer: Subscriber<string>) => { setInterval(() => observer.next(this.computeTime()), 1000); }); 在我的HTML方面,我是这样使用它的 <h1> <di

我正在使用Angular4。我的打字脚本文件中有一个Windows定时器

    this.dynamicTime = new Observable<string>((observer: Subscriber<string>) => {
        setInterval(() => observer.next(this.computeTime()), 1000);
    });
在我的HTML方面,我是这样使用它的

<h1>
<div>{{ dynamicTime | async }}</div>
这很有效

但如果我将变量dynamicTime的类型从Observable更改为Observable类对象。那就不行了。有趣的是windows计时器本身失败了。控件不会点击计时器功能computeTime

这就是变化的样子

    this.dynamicTime = new Observable<SomeClass>((observer: Subscriber<SomeClass>) => {
        setInterval(() => observer.next(this.computeTime()), 1000);
    });
在HTML方面

   <h1>
<div>{{ dynamicTime.someProperty | async }}</div>
看起来HTML端无法识别someProperty。someProperty在类SomeClass中声明为public

不知道我在这里错过了什么。请告知

谢谢 亚当

动态时间是可观察的。它没有名为someProperty的属性

为了获得属性,您应该首先使用异步管道展开observable。AsyncPipe订阅observable并返回具有someProperty属性的SomeClass实例

我愿意这样做

{{ (dynamicTime | async)?.someProperty }}
注:我在这里也使用安全导航操作符?。在对象未解析时能够防止错误

动态时间是可观察的。它没有名为someProperty的属性

为了获得属性,您应该首先使用异步管道展开observable。AsyncPipe订阅observable并返回具有someProperty属性的SomeClass实例

我愿意这样做

{{ (dynamicTime | async)?.someProperty }}

注:我在这里也使用安全导航操作符?。为了防止对象未解析时出错

您的computeTime函数是什么样子的?computeTime函数是什么样子的?我应用了此修复程序,它工作得非常好。非常感谢。但是dynamicTime.someProperty | async和dynamicTime | async?someProperty之间有区别吗?我应用了这个修复程序,它工作得非常好。非常感谢。但是dynamicTime.someProperty | async和dynamicTime | async?.someProperty之间有区别吗?