【发布时间】:2018-03-22 18:14:48
【问题描述】:
我想用 RxJS 观察一个属性的变化。
interface Test {
required: boolean;
toObserve: boolean;
}
class TestClass {
@Input() subject: Subject<Test>;
registerHandlers() {
this.subject.filter(element => element.required).subscribe(next =>
// Observe a property of every element that was registered
Observable.of(next.toObserve).subscribe(val => {
if (val) {
// DO SOMETHING
} else {
// DO SOMETHING ELSE
}
})
);
}
}
我得到了一个主题,新创建的对象被推入其中。有几个组件订阅了这些,并且应该对不同的属性变化做出反应。
在上面的示例中,如果设置了toObserve,我希望组件执行一些操作。这目前只工作一次 - 根据元素在subject.next(element) 注册时的值,执行正确的路径。
但是,一旦我更改了 element.toObserve 的值,什么都没有发生,订阅似乎也没有任何效果了。
【问题讨论】:
-
您只是将一个对象推送到主题,然后您正在更改同一个对象?
-
我将几个对象推送到订阅,但我想听听每个对象的变化。
标签: angular typescript rxjs